http://www.7klian.com

步履不断:OpenAtomXuperChainV3.10新成果一览

OpenAtom XuperChain(下文简称XuperChain) V3.10正式宣布!为了响应开源社区的对智能合约的多语言需求,并提高XuperChain的易用性、安详性,这个版本的亮点在于推出以太坊虚拟机(EVM,Ethereum Virtual Machine)、生意业务Txid生成方案进级、网络层P2P毗连对付TLS和Ipv6的支持,以及其他对机能和不变性等举办优化和提高。并优化和增加了Go和java语言SDK,利便开拓者与XuperChain举办交互。

主要内容:

【合约】智能合约支持EVM虚拟机

【共鸣】Smr不变性晋升

【Kernel】确定性Txid生成

【p2p】p2pv2支持TLS和Ipv6

【XuperOS】Cli支持有背书的挪用

【SDK】Go、Java等语言SDK

【群组打点】平行链群组主链增加addChain限制

【p2p】平行链群组节点动静转发举办群组过滤

【Bug】未确认生意业务回滚等bug修复

1.智能合约引擎支持EVM虚拟机

1.1 XuperChain?与EVM

EVM,是专门用于运行以太坊智能合约的虚拟机,合约可由solidity、viper等语言编写。以太坊智能合约以及EVM在区块链规模应用极其遍及,已经成为区块链智能合约规模的事实尺度之一。

得益于XuperChain独创的XuperBridge的架构设计,,将账本数据、合约交互接口等举办封装袒露,以合用于差异的合约VM。在版本3.10中,在原有的wasm、native虚拟机的基本上,又新增了对EVM的支持,极大的利便以太坊的社区开拓者,将以太坊Dapp迁移到超等链,充实发挥超等链高TPS、低手续费等优势。

步履不绝:OpenAtomXuperChainV3.10新成就一览

在XuperChain上陈设、挪用solidity合约,请参考solidity合约。

solidity合约

https://xuperchain.readthedocs.io/zh/latest/advanced_usage/create_contracts.html#solidity

1.2 XuperChain与EVM地点的转换

众所周知,以太坊的账户分为外部账户和内部账户,内部账户即为合约。XuperChain的账户模子,包括AK(Access Key)、账号(Account)、合约(Contract)。AK是详细一个address;账号用来在XuperChain上陈设合约,账号可以绑定一组AK;合约,即为陈设在区块链上的一段可执行字节码,合约名具有独一性,由用户指定。XuperChain的账户模子请参阅账户模子。

针对XuperChain与以太坊账户模子的差异,当AK,Account、Contract等存入EVM内部举办合约执行时,需要举办地点名目标转换。详细的地点转换法则请查阅超等链账户与以太坊账户地点转换。

可以通过xchain-cli东西,执行addr-trans呼吁,举办几类地点的彼此转换,罗列两个例子详细如下:

# xchain合约账户地点转evm地点,contract-account暗示XuperChain合约账户

./xchain-cli?evm addr-trans -t x2e -f XC1111111111111113@xuper

result, 3131313231313131313131313131313131313133??? contract-account

# evm地点转xchain合约账户,contract-account暗示XuperChain合约账户

./xchain-cli?evm addr-trans -t e2x -f 3131313231313131313131313131313131313133

result, XC1111111111111113@xuper???? contract-account

账户模子

https://xuperchain.readthedocs.io/zh/latest/design_documents/permission_model.html

XuperChain账户与以太坊账户地点转换

https://xuperchain.readthedocs.io/zh/latest/advanced_usage/create_contracts.html#solidity

2.确定性txid生成方案优化

之前版本的tx hash的计较方法回收的是go的官方json库来举办序列化,受限于go自身的语言特性以及json库的特性,当用户利用其他语言来实现XuperChain的客户端可能SDK时,大概会发生差异的序列化功效,即沟通的生意业务,但计较获得的txid差异。详细问题举譬喻下:

对空列表有两种序列化功效,null和[ ]

对[]byte有两种序列化功效?null和" "

......

go的json库的特性

布局体的字段顺序凭据protobuf翻译成go布局体的字段顺序分列

字段的默认值不会呈此刻json中,如int的0,字符串的“”, 数组的[ ]

......

比拟了社区开源区块链办理方案Bitcoin、Ethereum、Fabric等的txid生成方案,XuperChain设计了自身的生意业务序列化方案,同时分身了执行效率、易实现等特点,txid的计较效率晋升了近一倍。

确定性txid生成方案,请参阅代码实现确定性txid生成方案。

确定性txid生成方案

https://github.com/xuperchain/xuperchain/commit/8787c83dcce75e02b730902cb3eb632094af7b97

3.p2pv2支持TLS和ipv6

在同盟链场景下,区块链网络需要支持尺度CA,只有揭晓证书的节点可以接入区块链网络。今朝,p2pv1网络已经支持基于CA的TLS证书认证成果,p2pv2仅具备对通信内容加密的成果,在这个版本增加了基于CA的TLS证书认证成果。

同时,这个版本也增加了对ipv6网络的支持。需要修改如下设置:

isIpv6:当前节点中p2p网络是否利用ipv6(仅对p2pv2有效,对p2pv1无效,p2pv1原本就支持ipv6)

按照节点信息设置?bootNodes、init_proposer_neturl?的?multiaddr

xchain.yaml文件

p2p:

module: p2pv2

port:?47101

isIpv6:?true

bootNodes:

-?"/ip6/::1/tcp/47101/p2p/QmVcSF4F7rTdsvUJqsik98tXRXMBUqL5DSuBpyYKVhjuG4"

xuper.json文件

"init_proposer_neturl": {

"1": [

"/ip6/::1/tcp/47101/p2p/QmVcSF4F7rTdsvUJqsik98tXRXMBUqL5DSuBpyYKVhjuG4",

]

}

4.cli呼吁行优化之支持有背书的挪用

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。