几个月前,我们的开发团队做出了一个重大的决定:从零开始构建IoTeX区块链代码,而不是从其他区块链项目分叉。我们预见到物联网区块链在设计和实施方面与现有区块链有很大差异,因此决定不使用现有区块链代码,以避免任何潜在的技术和性能缺陷。
就在今天!我们正式宣布:IoTeX的第一个代码版本(代号:StoneVan)向所有人开放了!
代码地址如下:
StoneVan作为首次公开的代码版本,包含了交易和块处理、P2P网络的Gossip协议、使用我们自主创新的R-DPoS方案的可插拔共识架构、以及初始RPC支持等多种基本功能。
在接下来的几个月中,我们将在StoneVan上迭代更多强大的功能,包括支持投票的完整R-DPoS、跨链通信、检查点、内部加密库集成、脚本、虚拟机和钱包。
宏图伟业 始于足下
目前,IoTeX技术团队兵分两路:科研团队和开发团队。
科研团队专注于研发IoTeX区块链的核心技术。例如:在短期内设计与改进R-DPoS共识机制和跨链快速通讯,在中期内攻克轻量级链上隐私问题和物联网智能合约编写。
开发团队以科研团队的研究成果与业界历史上的密码学成就为基础,进行IoTeX区块链的开发。在更高层面上,他们负责编写代码和构建系统,大规模执行全面的单元测试、端到端测试和基准测试。
我们的科研团队和开发团队正在快速扩张中,努力通过招募和培养优秀的研究人员和工程师来壮大IoTeX的技术团队。
IoTeX区块链的开发将分两个阶段进行,即测试网 上线和主网上线。每个阶段都有四个主要版本,即:Preview、Alpha、Beta和Stable。
今天我们所发布的StoneVan是测试网的第一个代码版本,因此它是测试网的预览(Preview)版本,而接下来的Alpha版本将是下一阶段的目标。
几个月前,我们的开发团队经过深思熟虑,做出了一个大胆而意志坚定的决定:我们选择从零开始构建IoTeX区块链代码,而不是从其他区块链项目分叉出来。做出这一重大决定的原因是:我们预见到物联网区块链在设计和实施方面与现有区块链有很大差异,因此决定不使用现有区块链代码,这样才可以避免任何潜在的技术和性能缺陷。当然,这一重大决定势必意味着我们将要承担巨大的工作量。
幸运的是,我们的工程团队众志成城,出色地完成工作,到达了我们通往**“用区块链接世界”**伟大理想道路中的第一个里程碑。
代号StoneVan的缘起
密码学是IoTeX团队的基因,因此我们决定用世界级密码学家的名字为每个上线版本命名。
本次测试网络预览版是以Scott Vanstone教授(1947-2014)命名的。他是滑铁卢大学著名的数学家和密码学家,也是网络安全公司Certicom的创始人。
Scott Vanstone教授是将**椭圆曲线密码学(ECC)**商业化的先驱。他将椭圆曲线密码学引入进了ISO / IEC、ANSI和IEEE等多个标准组织,并在开发第一个椭圆曲线密码学标准——ANSI X9.62和IEEE P1363-2000方面发挥了积极作用。
在二十世纪九十年代早期,他开始向很多商业实体宣传椭圆曲线密码学的益处,促使摩托罗拉、Pitney Bowes和Research in Motion等大公司纷纷采用椭圆曲线密码学技术。
除了在椭圆曲线密码学商业化方面发挥重要作用外,Scott Vanstone教授还通过开发创新的椭圆曲线密码学算法、协议和密码分析技术,为密码学界做出了巨大贡献,为椭圆曲线密码在计算、物联网和加密货币领域的隐私保护方面奠定了坚实的基础。
IoTeX的首席密码学家Xinxin Fan博士曾与Scott Vanstone教授在椭圆曲线密码学领域进行长期深入的合作。此次测试网络预览的上线也是为了致敬Scott Vanstone教授在密码学上的卓越成就。
主要功能
StoneVan版本具有区块链应具备的所有基本功能。我们将关键特征分为四类:TBC(交易、区块和链)、网络、共识机制、测试与集成,详见如下所示:
TBC(交易、区块和链)
- Bech32-encoded address
- Serialization and deserialize of messages on the wire
- Merkle tree
- Transactions, blocks and chain
- Transaction pool
- Fast and reliable blockchain storage and query using BoltDB
- Block sync from network peers
- Basic framework for script and VM
网络
- Efficient gossip protocol over TLS
- Broadcast & unicast semantics
- Seeding through network config
- Rate-limit requests per connection
- Peer discovery
- Large-scale simulation and load test
共识机制
- Framework for plugable consensus
- Standalone and NOOP schemes
- Basic implementation of R-DPoS scheme
客户端
- Initial RPC support
- Tools for injecting transactions/blocks
测试 & 集成
- Unit test coverage > 50%
- Integration tests
- Staging development to 50 nodes (for internal use only)
代码
我们选择go语言来开发IoTeX区块链。除了诸多技术优势之外,它还是能平衡快速开发、代码性能和易于维护的最佳编程语言之一。
此外,我们使用Glide来管理go语言依赖包,并使用BoltDB(一种用于键/值存储的快速可靠的数据库)来存储交易和数据块。根据go语言的惯例,每个模块都实现为一个包,模块互相交互,如下图所示(请注意,随着iotex-core代码快速演化,下图可能会视情况而变)。模块间尽可能彼此解耦以便进行全面测试。
我们在项目GitHub的README中提供了运行代码的详细说明。如果您想自己运行iotex-core,我们在这里提供了一个简短的演示视频供您参考。
请注意,视频中的演示需要手动配置具体的网络地址。在下一版代码公布中,我们会提供易于配置的测试工具,方便大家进行自己的网络测试。
https://mp.weixin.qq.com/s/jNYtKvZXEcQ4bCFbxhs6Lg
参与和支持
iotex-core项目基于Apache License 2.0发布,我们非常欢迎来自开源社区的参与,包括样式/bug修复、功能实现、提供更好的IoTeX协议的方案/算法与建议、以及详尽的文档等各种贡献与支持。
有关代码贡献信息,请参阅我们的贡献指南。如要报告问题,请在github.com上提交。
下一步
目前,iotex-core只具有初步功能,支持的功能有限,正在迅速迭代中。我们计划在2018年6月底发布测试网的Alpha版本。欢迎大家集思广益,向我们提供版本命名的好创意!
测试网Alpha版本的目标是提供三个关键组件:
- **轻量级和多功能的椭圆曲线。**它是我们内部实施椭圆曲线密码学(ECC)的基础。
- **随机信标和带有投票功能的完整R-DPoS。**该部分内容我们将在接下来的几周发布一份黄皮书,以披露更多技术细节,并展示它与其他PoS方案相比的优势。
- **轻量级隐形地址。**它是我们自己设计的创新方案; 其学术论文目前正在进行同行评审,希望能尽快出版。
此外,下述功能也将成为测试网Alpha版本的一部分:
-
Fast block sync and checkpointing
-
Initial support of Cross Chain Communication (CCC)
-
Full explorer and basic wallet implementation
-
Seeding through IPFS and version negotiation
-
Pluggable transportation framework w/ UDP + TCP suppor
-
Peer metrics
-
Unit test coverage > 70%
-
Staging deployment to 200 nodes
-
Enhancement of existing features
-
And much more …
想要了解IoTeX更多信息,或与我们进行项目技术方面的探讨,欢迎随时通过下述官方渠道与我们联系。
中文电报群:Telegram: View @IoTeXGroupCN
电报消息频道: Telegram: View @iotexchannel
英语电报群: https://t.me/IoTeXGroup
Twitter: https://twitter.com/iotex_io
Medium: https://medium.com/@iotex
Reddit: https://www.reddit.com/r/IoTeX
招聘频道: IoTeX | where AI touches life
微信公众号: IoTeX社区



