关于区块链:步履不停OpenAtom-XuperChain-V310新功能一览

53次阅读

共计 3813 个字符,预计需要花费 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、低手续费等劣势。

在 XuperChain 上部署、调用 solidity 合约,请参考 solidity 合约。

  • solidity 合约

    https://xuperchain.readthedoc…

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.readthedoc…

  • XuperChain 账户与以太坊账户地址转换

    https://xuperchain.readthedoc…

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…

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 命令行优化之反对有背书的调用

XuperChain 凋谢网络的合约调用,须要背书节点来提供背书服务,次要包含黄反检测等。目前凋谢网络仅反对通过 SDK 的形式来进行合约调用,为了加强 cli 的易用性,在 cli 命令行则减少了有背书的合约调用。

须要对 cli.yaml 文件进行如下配置,isNeedComplianceCheck 示意须要背书:

endorseService Info
testNet addrs

endorseServiceHost: “39.156.69.83:37100”

complianceCheck:

  # 是否须要进行合规性背书

  isNeedComplianceCheck: true

  # 是否须要领取合规性背书费用

  isNeedComplianceCheckFee: true

  # 合规性背书费用

  complianceCheckEndorseServiceFee: 400

  # 如果通过合规性查看,签发认证签名的地址

complianceCheckEndorseServiceAddr: jknGxa6eyum1JrATWvSJKW3thJ9GKHA9n

创立平行链所须要的最低费用

minNewChainAmount: “100”

crypto: “xchain”

命令行执行减少 cliconf 字段,用于指定 cli.yaml 文件读取配置。示例如下:

// 不须要背书

./xchain-cli account new –desc account.des –fee 1000

// 须要背书

./xchain-cli account new –desc account.des –fee 1000 –cliconfpath conf/cli.yaml

5. SDK 组件

为了不便开发者与 XuperChain 进行交互,这个版本对之前 go sdk 进行了性能的裁减,并新增了 java sdk。目前曾经反对的性能列表如下,其中加红局部为新增性能:

  • 一般账户的创立、复原、余额查问等
  • 合约账户的创立等
  • wasm 合约的部署、调用、查问等
  • solidity 合约的部署、调用、查问等

JavaScript sdk 正在缓和的迭代中。

  • go sdk

    https://github.com/xuperchain…

  • java sdk

    https://github.com/xuperchain…

6.BUG 修复

3.10 版本针对共识、平行链性能以及区块回滚等中央,进行了 bug 修复。

  • 平行链群组主链减少 addChain 限度
  • 平行链群组节点音讯转发进行群组过滤
  • 未确认交易回滚 bug 修复

7. 后续步骤

请参阅版本阐明理解更多信息。如需获取最新消息,敬请浏览 百度 XuperChain 公众号 (Baidu-XUPER)。如需提供反馈,请在 GitHub 上提交问题。谢谢!

** 版本阐明
**https://github.com/xuperchain…

GitHub
https://github.com/xuperchain…

正文完
 0