译文/Translated:
今天我们很高兴发布EOSIO新版本,您可以在Github上查阅V1.3.0的详细版本说明,并在EOSIO开发者门户找到相关文件记载。
我们正持续收集社区在平台上构建应用的反馈,继续优化开发者在EOSIO上的体验。今后,我们将于每月的第二个星期二发布EOSIO软件的更新。
除了版本说明及文件记载之外,Block.one开发者关系团队与C++开发和公共传播团队一起发布一份易于理解的解说,总结每个版本的特点及优势,以及这些版本对平台而言所包含的潜在意义。
继续阅读以下内容,详细了解EOSIO 1.3.0版本
EOSIO 1.3.0版本的亮点:
可信耐的制造者轻量级验证(#5631)
在EOSIO 1.2.0版本中,我们介绍了重放及重新同步(#5130),用以解决区块链扩大过程中,需要花费时间设置新的节点,并且会不断重放的问题。基于此,1.3.0版本我们加入了更多优化功能,称为可信耐的制造者轻量级验证(Trusted Producer Light Validation)(#5631)。
在与社区成员的对话中,我们谈到了“可信耐的制造者”这一概念。将特定制造者的区块认定为“可信耐的”,并且仅需要进行轻量级验证。例如,制造者可以信任他们自己的区块,并指定其为“轻量级”,通过他们为区块制造的API和P2P节点内部网络,大幅度降低信号延迟,以此提升网络的整体性能。
由此,我们需要一种方式,让可信耐的节点制造者可有所作为(#5268)。现代制造者兼顾整个节点网络,确保网络坚固的同时高度可用,一个区块必须穿过数个啤酒花(hops)才可让可信耐的网络扩张,我们需要对其进行优化,由此我们才能继续为社区提供极具性能且有用的区块链软件。
总的来说,我们希望看到制造者在继续优化自身运行EOSIO区块链的基础设备时能获得巨大的功能提升。请注意,轻量级验证旨在用于单个区块制造者的内部节点网络,它并非用于连接其他区块制造者的P2P节点。为维持区块链的完整性,穿越不同制造者的P2P网络的区块必须继续进行完整的验证。
遇见wabt,新型WASM后台(#5416)
我们使用wabt(发音为“wabbit”)替代现行的binaryen编译器,这是一款适用于WebAssembly的工具,被认为比现在默认的binaryen编译器更快的存在。这意味着以EOSIO区块链为基础的交易处理将以微秒为单位进行加速。此外,我们期望现存区块链的回放时间能够减半。更多有关wabt的信息,您可以直接在github这里查阅该项目。
最棒的一点是,由于这所有都是支撑EOSIO的后台机制,因此无需多余的开发繁复步骤便可利用其优势。新的开发人员将能够更简单的设立节点,降低了使用EOSIO区块链的门槛。
EOSIO合约开发工具包(EOSIO.CDT)
编写EOSIO应用的核心部分就是编写被编译为WASM的C++智能合约。此前,我们推荐使用eosiocpp(它作为EOSIO构建的一部分被包含在内)。您或许已经在这里看过一份展示给开发者的文章,抨击eosiocpp的使用。请注意,未来发布的版本中,eosiocpp将会逐渐过时,但它不会立刻被删除,即便如此,我们强烈建议开始进行转移。
也就是说,随着EOSIO 1.3.0版本的诞生,我们很高兴在此发布新的工具包,我们推荐用此款工具包编写智能合约和生成ABI文档,这就是EOSIO合约开发工具包(EOSIO.CDT)。这款工具包为Gnu & C++11提供支持,为宣告智能合约结构和相关数据结构创造了更可靠的方式。
该工具包在github上已经以体验模式可供使用,一旦获得足够的稳定性,它将开始自身的发布周期,独立于EOSIO核心。那时,使用EOSIO.CDT需要采用这里的资源对其进行编译,请随时关注即将发布的版本,我们计划发布预编译的二进制文件。
1.3.0版本发布的完整列表:
- 在action_trace中添加区块信息和ram delta(#5339)
- 在keosd中添加UNIX socket HTTP服务器(#5425)
- 交易追踪登录,查看P2P上的交易(#5725)
- 修改cleos帮助文本中的错别字(#5639)
- Eosiolib文本注释修改(#5603)
- 单元检测修复(#5634)
- Inline Action Depth Reached 的用语调整(#5635)
- 支持cleos上范围及表格的迭代(#5486)
- 删除无用的变量(#5582)
- h上拼写及空格的修正(#5580)
- 反转检查非自动keod的标志(#5574)
- 修复虚假的长期运行失败(#5558)
- 启动器测试(#5476)
- 使用cleos get_account 正确打印分隔符(#5506)
- 延迟交易的cleos支持(#5492)
- 删除旧的交易合约(#5477)
- 新的测试,确保到编辑器的require_recipient被无视(#5446)
- 区块链API:精细代码(#5434)
- 添加cleos设置合约/代码/abi——清除(#5442)
- 纠正cleos get_table昂朱文本,将“contract”修正为“account”(#5448)
- 在构建图像时停止创建匿名卷(#5444)
- Docker优化(#5452)
- 创建secp256k1子模块(#5478)
更新至fc:
– fc的一些更新,用以支持HTTP RPC的unix sockets(EOSIO/fc#12)
– 优化sha256对比(EOSIO/fc#16)
– 改变fc编码中的各种assert,用以使用FC_ASSERT(EOSIO/fc#19)
– 在构建十六进制字符串时,修复加密散列表类未初始化数据错误(EOSIO/fc#21)
- 为大小写敏感的MacOS构建修复了套管功能(#5386)
- 修改格式错误的签名(#5305)
- 使用config::producers_account_name instead取代N(eosio.prods) (#5277)
- 在区块链API中添加新的get_raw_abi RPC(#5375)
- 在abi_serializer上支持ABI 1.1版:添加了变量和二进制扩展;现在执行ABI中的主要版本号(#5652, #5673)
- 修复abi_serializer中的错误 (#5680)
- 清除状态数据库时(state DB),清除状态目录的内容,但不清除目录本身(#5696)
- 为cleos transfer命令添加可选的pay-ram-to-open标志,在token :: transfer操作之前添加eosio.token :: open操作(#5581)
- 区块链API中get_accout RPC现尝试从已安装系统合约中确定核心符号而非依赖构建配置参数(#5704)
- 对cleos get_account的子命令进行改进:修改API节点和cleos只见的核心符号不匹配问题;现在也在输出中打印账户创建时间(#5704)
- 将交易ID前缀与history_plugin的get_transaction RPC进行适当匹配 (#5723)
- 避免插件通过irreversible_block信号更改apply_block前的区块(#5611)
保持连接
若您有兴趣提供反馈,并与我们的团队更加密切合作,共同改善EOSIO,请向我们开发者团队发送邮件: developers@block.one。您也可以在EOSIO开发者门户订阅我们的邮件列表,获得更多更新信息。我们很高兴将继续为EOSIO的开发者们完善软件的使用,我们将持续为最具可扩展性的区块链开发奠定坚实的基础。
原文/Original:
Today we are pleased announce the next version of EOSIO, V1.3.0. You can view the detailed release notes here on Github, and find documentation on the EOSIO Developer Portal.
We are continually collecting feedback on how the community is building applications on the platform and are consistently improving the developer experience on EOSIO. Going forward,we will be targeting the second Tuesday of each month for an update to the EOSIO software.
In addition to release notes and documentation, the Block.one Developer Relations team — in coordination with the C++ Development and Public Communications teams — will provide easy-to-digest summaries of the features and benefits of each release and their implications on our goals for the platform.
Continue reading below to learn more about EOSIO V1.3.0.
Highlights in EOSIO V1.3.0:
Trusted Producer Light Validation (#5631)
In the EOSIO V1.2.0 release, we introduced Replay and Resync (#5130) to address the issue that as the blockchain grows, the time needed to set up a new node and replay the chain will also continue to rise. Building on that, in V1.3.0, we have included more performance enhancements called Trusted Producer Light Validation (#5631).
In conversations with the community, we have been discussing the concept of a “trusted producer.” This would allow for blocks from specific Producer(s) to be considered “trusted” and only need light-verification. For example, Producers would have the ability to trust their own blocks and designate them as “light” drastically reducing propagation delays across their own internal networks of API and P2P nodes for blocks they produce in order to increase the overall performance of the network.
With this, we needed to create a way to allow for trusted producers in nodeos (#5268). With modern producers running entire networks of nodes to provide resilience and high availability, the number of hops a block must traverse to leave the trusted network grew and we needed to optimize so that we could continue to deliver a performant, usable blockchain software for the community.
Overall, we expect to see a significant performance increase from this for Producers as they continue to optimize their own infrastructure to run the EOSIO blockchain. Note that light validation is intended to be used on the interior of a single block producer’s network of nodes, it is not intended to be used on P2P nodes connecting to other block producers since blocks traversing the P2P net between producers must continue to be fully validated in order to maintain integrity of the blockchain.
Meet wabt, the new WASM backend (#5416)
We have replaced the existing binaryen interpreter with wabt (pronounced “wabbit”), a suite of tools for WebAssembly that is considerably faster than the current default binaryen interpreter. This means that every microsecond spent processing transactions on an EOSIO-based blockchain can be more productive. Additionally, we expect that the replay time for existing chains can be cut in half. For more information on wabt you can review the project directly on github here.
The best part is, as this is all backend mechanics powering the EOSIO platform, no additional development complexity is needed to see these benefits. New developers will be able to more easily set up a node, lowering the barrier to entry to start using the EOSIO blockchain.
EOSIO Contract Development Toolkit (EOSIO.CDT)
A core part of writing applications for EOSIO is writing C++ smart contracts compiled to WASM. Previously, we recommended using the eosiocpp utility, which was included as a part of the EOSIO build. You may have seen that there is a deprecation notice posted to the issue here and is displayed to developers when using eosiocpp. Please note that eosiocpp will be gradually deprecated across future releases. It will not be removed immediately, but it is strongly recommended to begin transitioning.
That said, with the release of EOSIO V1.3.0, we are excited to announce a new toolkit we will start recommending for compiling smart contracts and generating ABI files — the EOSIO Contract Development Toolkit (EOSIO.CDT). EOSIO.CDT provides support for Gnu & C++ 11 style creating a more reliant way of declaring your smart contract structure and associated data structures.
This has been available on github in experimentation mode for some time, but has reached enough stability where it will start having its own release cycle independent of EOSIO core. At the moment, to start using EOSIO.CDT it must be compiled from the source found here, but stay tuned for coming releases where we plan to include the precompiled binaries.
Full List of 1.3.0 Release Issues:
- Add block info & ram delta to action_trace (#5339)
- Add UNIX socket HTTP server to keosd (#5425)
- Transaction trace logging for visibility of transactions on P2P (#5725)
- Fix typo in cleos help text (#5639)
- Doxygen fixes for copy of eosiolib (#5603)
- Unit test fixes (#5634)
- Fix wording for Inline Action Depth Reached (#5635)
- Support iteration over scopes & tables in cleos (#5486)
- Remove unused variable (#5582)
- Spelling and whitespace corrections in transaction.h (#5580)
- Inverted check for flag for no auto keosd (#5574)
- Fix Spurious Long Running Test Failures (#5558)
- Launcher tests (#5476)
- Print separators properly with cleos get account (#5506)
- cleos support for delayed transaction(#5492)
- Remove old exchange contract (#5477)
- New test to ensure require_recipient to generator is ignored (#5446)
- Chain api: get code hash (#5434)
- add cleos set contract/code/abi — clear (#5442)
- Correct cleos get table help text from ‘contract’ to ‘account’ (#5448)
- Stop creating anonymous volumes during image build (#5444)
- Docker Improvements (#5452)
- Build secp256k1 as a submodule (#5478)
- Updates to fc:
– A handful of fc changes to support unix sockets for HTTP RPC (EOSIO/fc#12)
– Optimize sha256 comparison (EOSIO/fc#16)
– Change various asserts in fc code to use FC_ASSERT (EOSIO/fc#19)
– Fix uninitialized data bug in fc cryptographic hash classes when constructing from a hex string (EOSIO/fc#21)
- Fixed framework casing for case sensitive MacOS builds (#5386)
- Improve error for malformed signature (#5305)
- use config::producers_account_name instead of N(eosio.prods) (#5277)
- Add new get_raw_abi RPC to chain API (#5375)
- Support for ABI version 1.1 in abi_serializer: added variants and binary extensions; major version number in ABI is now enforced (#5652, #5673)
- Fixed bugs in abi_serializer (#5680)
- When clearing state DB, erase contents of the state directory but not the directory itself (#5696)
- Add optional — pay-ram-to-open flag for the cleos transfer command to prepend an eosio.token::open action before the eosio.token::transfer action (#5581)
- get_account RPC in chain API now tries to determine the core symbol from the installed system contract rather than relying on the build configuration parameter (#5704)
- Improvements to cleos get account sub-command: robust against mismatch of core symbol between API node and cleos; now also prints account creation time in output (#5704)
- Proper matching of transaction ID prefix within get_transaction RPC of the history_plugin (#5723)
- avoid plugin through irreversible_block signal change block before apply_block (#5611)
Stay Connected
If you are interested in providing feedback and working more closely with our team to improve EOSIO for the community, you can send our developer relations team an email at developers@block.one. You can also hear about future updates by subscribing to our mailing list on the EOSIO Developer Portal. We are excited to be continually improving the usability of the software for EOSIO developers as we continue laying a foundation for the most scalable blockchain development.
原文链接/Original URL: