CasperLabs Node 0.20版本技术亮点

我们已发布的六月份版本(即0.20版本),是测试网发布后的最大改版,增加了合约头、合约升级以及支持账户多种密钥类型(secp256k1、secp256r1、ed25519)、绑定和交易签名。得益于本次升级中的多种元素,可使智能合约编写的更加精准,对于Casper网络上存储的会话逻辑和智能合约,也可同时提升其使用和维护的体验。

此版本的技术细节

合约头

Casper区块链执行wasm合约,这些合约要么作为(一次性执行)交易的一部分在会话代码中传递,要么从区块链全局状态存储的地址调用。Casper交易是元交易,在一个部署中同时包含支付码和会话代码。支付码和会话代码都可以带参数,这些参数在运行时传递。本版中,这些参数必须声明名称和类型。一经命名,就可以在调用合约时以任意顺序发送参数。

合约头技术发布说明:

  • 用户可用稳定哈希存储合约包。合约包可选项包括用户自定义权限控制组(作为一组特定的Uref存储在一个标签下)。
  • 每个合约包都会收到一个合约包管理所需入口的Uref,这个Uref将发至创建合约包的账户,也可按需分发给多个维护者。
  • 用户可将其一个或多个逻辑版本存储在一个稳定哈希的合约包中,并分别管理这些版本。各版本可按需禁用或保留(例如,允许版本间的过渡期)。这替代了之前在Uref下存储和更新合约的机制。
  • 每个版本的存储逻辑都可定义一个或多个入点。每个入点可有任意个定义了名称和类型的参数。每个入点可公开/匿名(允许任何调用者),或需被包含在用户定义的访问组中(在合约包中定义和管理)。此外,入点可被定义为session(在调用账户时运行)或Contract(在调用合约时运行)。
  • 存储逻辑可以直接使用合约包哈希和顺序逻辑版本,或使用特定的合约哈希版本来访问。另外,如果合约包哈希没有提供合约版本,则默认使用该合约包的最高可用版本(调用者需确保兼容性)。
  • 描述合约包和合约版本的元数据经过系统检查,且随时可查;因此,可检查合约包的定义、其合约版本及端点,包括参数和返回值。
  • contract_api提供了帮助功能,使合约作者能够轻松使用这些新特性。

Rust合约DSL

使用合约头最简单的方法是使用合约DSL,这些宏在运行时加载代码以设置合约,并为合约创建入点。详情请查阅开发者指南:https://docs.casperlabs.io/en/latest/dapp-dev-guide/index.html。

支持多种密钥类型

Casper网络现已支持多种账户密钥的加密算法,开发者可在系统内使用其中任意类型的密钥。由于SecureEnclave协处理器的兼容性,苹果设备可用作Casper账户的硬件钱包。

  • Secp256k1 - 以太坊风格的密钥
  • Secp256r1 - 苹果SecureEnclave密钥
  • Ed25519 - Casper密钥

我们相信,对于任何的网络或协议,设备提供强大的可恢复历史记录的密钥存储功能必不可少。我们的系统支持可靠的密钥恢复功能,如密钥授权,甚至链上社交恢复(可以以多重签名形式指派其他几个账户来恢复权限)。

优化

我们将持续优化以提高网络性能。本版中,我们将通证转账功能植入了合约运行环境的主机端。这将使通证转账无需通过wasm或存储在全局状态。

版本安装包说明

版本安装包包括:

  • 通过DockerHub获取Docker镜像(https://hub.docker.com/u/casperlabs)
  • Debian安装包
  • RPM安装包
  • tar.gz

开发者了解详情并开始使用

发布后,可在Github上获取安装包及相关文档链接:

问题反馈

反馈问题:https://github.com/CasperLabs/CasperLabs/issues

获取帮助

加入Discord社区:https://discord.gg/Q38s3Vh

关于CasperLabs

CasperLabs区块链平台旨在为每个人扩展机会。CasperLabs引领区块链前沿,专为实际应用设计,无需牺牲可用性、成本、去中心化或安全性。 CasperLabs一贯支持创新,让区块链更易用、更开放、更具前瞻性,以此消除主流采用区块链的壁垒;团队始终遵循开源原则,全方位为个体赋能,力求提供公平的基础以实现长远影响。

猜你喜欢

转载自blog.csdn.net/CasperLabs/article/details/107635238