IoTeX社区小伙伴们大家好!自从我们8月份发布了Beta测试网代码之后,IoTeX团队在科研、概念验证和社区推广方面取得了长足的进展。 最重要的是,我们在技术研发上取得了巨大的成就,离我们的目标—构建最安全、实用、高性能的区块链平台更近了一步。
今天,我们很自豪地推出IoTeX的第四个代码版本—主网预览版“Photon”。该版本涵盖了很多激动人心的新功能,是即将在2019年第一季度推出的功能完整的主网Alpha版的概览:
01
子链配置: 支持两个独立的区块链(主链和子链)在IoTeX网络中不同的数据库上运行;
02
跨链通信: IoTeX钱包支持跨链通信,可以完成主链与子链间的价值转移;
03
强化共识: 强化了IoTeX独创的Roll-DPoS共识机制的性能和安全性(1000+TPS和100+的节点测试);
04
IoTeX Explorer 2.0版: 独立的Explorer页面能可视化主链和主链的各项活动。
…
您可以在Github上找到我们的开源代码:
您可以在这个README文件中找到运行Photon代码的详细说明:
以及演示视频:
“Photon”名字的由来
— Kenneth Lane Thompson
Photon是以肯尼斯·汤普森(Kenneth Thompson)的名字命名的,(Photon是由Thompson名字中的字母重组而成),遵循IoTeX以计算机科学领域先驱命名代码版本的传统。本月初, 团队发起了“主网预览版命名大赛”,鼓励社区成员提议并投票,为主网预览版命名。我们收到了超过12600份提议,在五名决赛选手中,Photon 以27% 的总票数胜出。在此感谢所有参与此次活动的社区成员,感谢你们的支持!
肯尼斯·汤普森是美国计算机科学的先驱。他以发明几种编程语言(如Go语言, B语言) 和操作系统 (如Unix )而扬名世界,并于1983年获得图灵奖。相信大家都知道,IoTeX区块链是在Go语言(由汤普森共同发明)中进行编程的。此次命名是IoTeX团队和社区致敬肯尼斯·汤普森在科技领域的卓越成就,他为IoTeX今天的创新提供了基础。
Photon 简介和特性
在Photon中,我们可以体验到一些新的技术概念,这些技术概念将在2019年第一季度发布的主网 Alpha版本中全面部署。IoTeX的目标是创建一个支持所有类型物联网实用案例的区块链—例如智能城市、供应链、可穿戴设备、自动驾驶汽车等等。实用案例之间有共同的需求(例如可延展性,隐私性,物联网设备支持等等),每一个案例都是独一无二的,需要量身定制的解决方案来优化性能、提升数据安全性。为了满足这种多样性的需求, IoTeX采用了主链/子链架构,允许开发人员使用最适合他们的DApp来设计、创建子链。应用程序将通过跨链通信与其他应用程序进行无缝的信息/数据传输。由IoTeX建立的一个充满活力的生态系统——具有各种适配用途和可互操性的子链,这就是我们对未来物联网的展望!
在过去的两个月里,我们进行了一系列的技术创新,使IoTeX更接近物联网的未来愿景。我们将在下文详细介绍Photon的核心特性,包括子链配置、跨链通信、强化共识 (Roll-DPoS) 和IoTeX Explorer 2.0版本。通过详尽的代码检查/“质量测试”,我们极大地提高了智能合约、钱包和现有代码库的稳定性。最后,我们严格地测试了IoTeX 测试网,实现了超过1000+TPS (具有即时终结性),并成功地使用Kubernetes部署了超过100个节点。Photon的特性和增强的完整列表如下:
子链的配置和管理
主链/子链体系结构是IoTeX区块链设计的核心部分, 它允许任何用户使用最适合其需求的体系结构、 编程语言甚至共识机制创建自己的子链。 例如,注重隐私性的子链可以使用Mimblewimble结构,而需要更高吞吐量的子链可以使用更大的区块。子链不仅为开发人员带来了灵活性,而且还增加了可扩展性。您可以将子链看作是并行运行的独立区块链,其中一个子链上的活动不会影响其他子链上的吞吐量。子链的状态(例如,历史交易数据)会定期同步到主链上,主链会记录整个IoTeX网络的状态。由于能够添加无限的子链,IoTeX网络实际上是可以无限扩展的!
在Photon中,我们介绍了第一对主链/子链结构,它们是独立的、相同结构的区块链,运行在不同的数据库上。它们共享一些点对点网络,但在其他方面是独立的,这意味着主链和子链上的信息被记录在单独的分类账本上,每个分类账本将并行生成区块。子链具有更强的灵活性和可定制性,主链则更严格、扮演着特定的角色。在IoTeX网络中,主链的作用之一是记录每个子链在各个时间点(区块)的状态,如下图所示。
每个子链上的区块都包含各种类型的交易,包括通证/数据传输和智能合约的执行。在每条链中,当某一区块的存储量达到最大值后,就会产生一个新的区块并被验证(“挖矿”)。 此外,每当在子链上产生一个新的区块时,都会向主链发送一个含有梅克尔树(Merkle tree)交易记录的Hash Root(见上图:aka Hash ID),将新创建的区块里的信息都记录在主链上。简单地说,梅克尔树(Merkle tree)用分层级的方法展示了链上的任意时间点的交易信息。每个新的区块有且仅有一个梅克尔树(Merkle tree)和Hash ID,当这些信息被记录到主链上时,就成为了上一个区块创建以来子链上各种活动的有效性证明。
主链交易包括对代表投票、信息/数据的跨链传输(将在下一节中讨论)以及各种子链区块的Hash ID,这些交易代表了IoTeX 网络中所有子链的历史交易凭证。如上图所示,主链的区块3包含了几个跨链交易(即Hash ID (交叉链))以及几个子链区块的Hash ID(即 A、B、C、X-2、X-3)。"X-2"是子链X在第二区块后的状态,"X-3"是子链在第三区块后的状态,此区域还记录了子链A、B和C的状态。根据一个子链上生成的交易量(即产生新区块的速率),子链区块的多个Hash ID可以存储在同一个主链区块中。
IoTeX拥有巨大的可扩展性。在一个正常的区块链架构下,X子链的所有交易将被单独存储在主链上。而在IoTeX的体系结构下,我们可以有效地将整个子链区块的交易打包成单个交易存储在主链上,从而实现"从100到1"的可扩展性。随着无限的并行子链被添加到主链上,未来的IoTeX 网络将能够支持数十亿的物联网设备!
跨链通信
跨链通信可以增强链与链之间的互操作性,是一个区块链领域广泛研究的话题。Polkadot,Cosmos,和Aion,都是相关的研究项目,试图用不同的方法来建立一个可以互操作的区块链网络。这种互操作区块链(如IoTeX子链)的概念是我们对物联网未来愿景的核心组成部分。如今,基于不同云平台的物联网设备和企业 (如AWS、Google、Azure)无法相互交换数据,这极大地限制了物联网的价值和功能。在独立的和复杂的物联网行业之间构建互操作性是IoTeX研究的重点,这就是我们的前期设计着眼于支持不同的子链和跨链通信的原因。
在Photon中,我们会事先测试独立的主链和子链之间的跨链通信能力。在过去的几个月里,我们开发了构建模块,以便在主链/子链之间实现数据和通证的双向传输——我们计划在未来几周内发布相关的研究论文,并在我们的主网Alpha 版本中全面部署跨链通信。在这次Photon发布中,我们可以先了解这些构建模块:
从主链到子链的通证存储
通过 Explorer API call在两个独立的区块链(如主链和子链)之间转移EIOTX通证;
升级 IoTeX 钱包
建立主链和子链共用的钱包,通证余额分别记录 (即主链与子链有不同的帐户地址,但有相同的私匙) 。
创建主链钱包
创建子链钱包
记录子链钱包公钥
您现在可以在新的 IoTeX 钱包http://IoTeX.io/Wallet中体验新的特性,并测试存储功能。 根据上图步骤创建您自己的主链和子链钱包,也可以在Photon的介绍视频里找到详细演示。 在接下来的几周里,我们将发起一些社区活动来进一步测试此项功能,持续探索我们的主链/子链架构。
Roll-DPoS共识升级
除了新功能以外,Photon还强化了内部 Roll-DPoS共识机制的性能和安全性。在性能方面,我们将区块的生产时间(即延迟)缩短了30%,从10秒减少到了7秒。我们还实现了基于时间的委托轮转,在超出配置的时间限制后,用活跃的代表自动替换不活跃的区块生产者。在安全性方面,我们实现了分布式密钥生成,这是对测试网Beta版本"Epik" 中实现的双密钥生成功能的一个重大安全性改进。
经过几次跨越式的代码改进,IoTeX 测试网在稳定性上有了很大的提高,这使我们能够让测试网的质量更上一个台阶。在分期环境中,IoTeX取得了骄人的成绩——超过1000的TPS(系统吞吐量)、1秒延迟、可支持100个以上代表。我们的主网Alpha将在2019年第一季度发布,届时,我们期望在完全稳定的情况下达到目前的性能巅峰。
IoTeX Explorer 2.0版本
为了使独立的主链和子链的区块活动直观可视,我们为主链https://www.iotexscan.io和子链 https://subchain.iotexscan.io都添加了一个Explorer 。社区小伙伴们都知道,我们最近开放了IoTeX Explorer的源代码https://hackernoon.com/iotex-network-explorer-has-been-open-sourced-27479bd13101,以便社区成员们创建自己的Explorer, 监控区块链的活动。
如上图所示,主链Explorer展示了多种交易的完整历史:代表投票、数据跨链传输、价值跨链传输、以及代表子链区块历史的Hash ID传输。当主链上的Roll-DPoS投票和区块生成时,主链Explorer 可以通过球形画面展示22个候选节点中被用来生成和验证当前阶段的区块。目前的测试网使用22个候选节点,这意味着网络最多可以承受7个恶意节点的攻击(注意:PBFT可以容忍3X + 1的攻击者)。
如上图所示,子链Explorer与主链Explorer相似。然而,考虑到投票只发生在主链上,子链资源管理器只包含两种类型的交易: 价值/数据的传输和智能合约的执行。其他组成部分(如,# 区块,# epoch, IFTPS, BBH)都和主链Explorer一样。我们希望您能在主链和子链之间创建自己的跨链交易,并在主链及子链Explorer中找出相对应的区块/交易ID。
即将到来的新进展
Photon是IoTeX 测试网的最终版本——标志着2019年第一季度的主网络Alpha正式进入发布倒计时!主网Alpha将是IoTeX至迄今为止最大的里程碑,标志着我们从测试网阶段正式过渡到主网阶段。为了充分准备这一重要的过渡,接下来的几个月里我们将进行技术开发、协议/治理设计和方向规划等一系列的工作,您将会看到:
- 新功能开发 ,包括具有隐私性的子链和硬件
- 软件开发工具包 (SDKs)和测试网初始节点存档
- 完全开放测试网 , 用户可以验证交易, 开发去中心化的应用程序(DApps), 并且在第一时间内探索IoTeX网络
- 区块创建者(BP)选举大赛
- 黑客/开发人员的BUG赏金大赛
- 子链、跨链沟通和Roll-DPoS领域的研究论文
- 测试功能及推广IoTeX的社区奖励计划
- 概念证明 和实例演示短片
- 敬请期待…
感谢广大的社区成员一直以来对我们的支持——我们比以往任何时候都更有动力将我们对区块链和物联网的愿景变为现实。 我们离“一环一环链接世界”又近了一步 !
代码贡献-我们需要您的帮助!
IoTeX - core项目是完全开源的,并且获得了Apache License 2.0的许可。
您的帮助可以让IoTeX充分发挥其潜力,我们欢迎任何形式的帮助(例如,设计/bug修复、特性建议、方案/算法建议、存档帮助)!你可以在我们的代码贡献指南上找到更多信息。
如果您有什么问题,请您在我们Github页面上提交给我们: