Tendermint 与MOLD之间的关系

GAME
GAME
Published in
14 min readAug 14, 2018

正如我们上次报道,MOLD在通过构建专门用于游戏的原始区块链来实现下一代分布式游戏平台。我们将对类似Hyperledger这样的PBFT的联盟链,并拥有即时终结性的区块链Tendermint进行考察与总结,并考虑它是否适合我们的平台。

目录

概述
MOLD所带来的世界观
关于Tendermint项目
Tendermint如何运作
关于资产的定义
Tendermint的TPS验证
考察
总结

MOLD所带来的世界观

我们瞄准的世界观是,

  • 非集中机制中的个人数字资产管理
  • P2P中数字资产的免费和快速交易
  • 游戏开发者更有可能享受更多利润的环境

我们接下来说明Tendermint是否可以实现这些条件。

关于Tendermint项目

Tendermit是包装了区块链中的共识算法和P2P网络的软件。 通过使用它,可以轻松安全地构建全新,独特的区块链网络。 在下文中,我们将解释其主要特征。

首先,Tendermint具有以下功能。

  • 在PoS达成共识的情况下,因为生成区块的人数范围会被提前缩小所以交易的处理速度很
  • 由于不发生fork,因此可以在生成区块之后立即获得最终结果。
  • 验证节点内1/3停止或拜占庭行为,也不会出现问题
  • 可以在公共链或私人链中安装
  • 它可以用任何编程语言开发
  • 更简化的安装组件化设计和ABCI独自的应用层实现的区块链

Tendermit如何运作

我们将简单的解释谈谈Tendermint如何运作,如何实现上述特征。

在Tendermint中,参与区块生成的人被称为validator。从validator中,我们选择一个交替生成新区块的人(Proposer)。此时选择的Proposer 的机制,称为循环系统。如果Proposer选择一个区块,则未被选为Tendermit人的人投票,如果获得超过2/3的同意,则将获得批准并继续进行下一步。

在Tendermint中,执行两个阶段的投票,以便不为同一区块同时生成区块。我们将第一次投票称为pre-vote,将第二次投票称为pre-commit。此外,如果未收集2/3或更多票,我们将等到达到时限。因此,Tendermit是属于部分异步共识。

此外,在这个两阶段投票过程的过程中,如果没有获得足够数量的票数,我们将进入下一轮。在下一轮中,执行投票过程的验证器是不同的,并且再次完成失败的区块的投票。 (区块中包含的交易不一定相同。)

这一轮,意味着从propese到pre-commit的一系列流程。

流程图可在下图中确认。

Tendrmint Official:https://tendermint.readthedocs.io/projects/tools/en/master/introduction.html

MOLD和Tendermint之间的简单比较

我们相信如果可以使用Tendermit建立自己的区块链,我们可以实现MOLD的思想。

关于Tendermint的终结性

对于作为游戏平台的MOLD,实际应用需要高水平的即时结算。 换句话说,有必要形成一种能够实现有希望的快速终结的共识构建算法。

我们确认在与Hyperledger进行比较时,但目前比特币,以太坊等的吞吐量远远低于社交游戏所需的吞吐量。

此外,由于终结性问题,主链可能会掩盖直到一定时间段(直到批准多于一个区块),因为交易存储在区块中。

另一方面,Tendermit可以解决这两个问题。 如上所述,它提供了高TPS和拥有决定性的终结性。

Tendermit共识和分散性

MOLD旨在构建分布式游戏平台。 在这样做时,必须创建一个任何人都可以自由加入 MOLD网络的机制。另一方面,Tendermint可以组建联盟或公共区块链。 出于这个原因,最初,MOLD团队的成员制定了一个股权代币,用于平台的增长和扩展,创建一个联盟链,并在足够的用户聚集时向公众发布这些股权代币,这样就可以创建一个 任何人都可以参与的维护网络的机制。

关于资产的定义

名为Ethermit的项目是一个以Tendermit为基础的区块链,使用Tendermint可以获得以太坊的EVM。 通过使用此EVM,可以按数量生成Fungible(可代替)资产。 此外,可以实现Non-fungible(不可代替)的资产。

在MOLD平台上发布可替代代币以及不可替代代币是把游戏内物品以代币形式实现时不可缺少的概念。

参考:关于MOLD的物品代币摘录自白皮书

物品标记有两种。它是一个Fungible(可代替)代币和一个Non-Fungible(不可代替)代币。前者对应于以太坊上的ERC-20代币,用于多次存在于游戏中的魔法药水之类的物品。成为Fungible代币的游戏物品可以逐个替换,例如Molca拥有的一个代币和Molna拥有的一个代币完全相同。然而,许多游戏都有独特的游戏内物品和个人价值,使游戏空间更加刺激。具有独特等级,攻击力,技能等的游戏内物品将其状态保持为元数据并成为非资金性代币。这对应于以太坊上的ERC-721代币,它是世界上唯一不可替代的代币。此时,Molca持有的一个代币和Molna持有的一个代币并不总是等同于可交换的。对于任何商品代币,用户可以将其作为MOLD上的数字资产拥有,并且可以使用MOLDEX等轻松进行交易(请参阅下一节)。此外,MOLD准备SDK(参见第4.4.6节)作为游戏开发者可以轻松发布两个代币的机制。

Tendermint的TPS验证

我将在这里检查Tendermint的处理速度。 TPS表示每秒交易次数,而MOLD在使用Moldcoin作为游戏内货币时需要一定的速度。

这次我使用了Tendermit的基准工具tm-bench

操作环境
在Mac上的Virtual Box中,

  • 主内存512 MB
  • 处理器数量1个CPU
  • Linux / Ubuntu(64位)
  • Tendermit版本0.22.4-c64a 3c 74

我将引用下面的结果。

测量方法

我们测量了生成数千个交易10秒钟时可以处理的交易数。 由于这次是测试,我们使用简单的键值存储交易。

很重要的一点

TPS的值根据我们使用的PC和操作环境而有很大差异,因此该基准测试只是一个指南。

用Ubuntu机器1台

root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 594 352 876 5936
Blocks/sec 0.900 0.300 1 9
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 2000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 577 355 874 6342
Blocks/sec 0.818 0.386 1 9
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 3000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 607 343 859 6682
Blocks/sec 0.909 0.287 1 10
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 5000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 586 349 893 6443
Blocks/sec 0.909 0.287 1 10

用Ubuntu机器2台

Stats          Avg       StdDev     Max      Total     
Txs/sec 150 405 1360 1504
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1500 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 43 130 433 433
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1500 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 0 0 0 0
Blocks/sec 0.000 0.000 0 0
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1500 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 51 154 513 513
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1200 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 40 119 396 396
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 45 136 452 452
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 100 302 1005 1005
Blocks/sec 0.200 0.400 1 2

用Ubuntu机器3台

root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657<img title='chart.jpeg' src='/attachments/19e5ae3f-d5c2-4e48-990b-042269f7b8e8' width="1200" data-meta='{"width":1200,"height":800}'>
Stats Avg StdDev Max Total
Txs/sec 34 104 345 345
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 89 267 889 889
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 2000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 28 83 276 276
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 36 107 358 358
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 38 115 383 383
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1500 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 54 161 537 537
Blocks/sec 0.200 0.400 1 2

Stats Avg StdDev Max Total
Txs/sec 33 99 331 331
Blocks/sec 0.200 0.400 1 2

用Ubuntu机器4台

Stats          Avg       StdDev     Max     Total     
Txs/sec 34 104 345 345
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 89 267 889 889
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 36 107 358 358
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 38 115 383 383
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 64 181 607 641
Blocks/sec 0.200 0.400 1 2
root@vagrant-ubuntu-trusty-64:~# tm-bench -T 10 -r 1000 localhost:26657
Stats Avg StdDev Max Total
Txs/sec 70 170 564 700
Blocks/sec 0.200 0.400 1 2

换成图表,将如下所示。在这里我们使用了TPS的最高值创建了一个图表。

从该图中可以看出,随着节点数量的增加,TPS呈指数下降。 然而,虽然我们在低性能环境中进行了实验,但我们发现TPS攀升至数百,并且比现有的区块链更好。

考察

与著名的区块链(如比特币和以太坊)的TPS相比,我们可以看到Tendermint的交易处理速度更快。

当节点数量从一个增加到两个时,TPS急剧下降。 这是因为与仅连接一个节点时相比,由区块传播和共识引起的时间有着明显的增加。

此外,当将节点数量从3改为4时,TPS没有太大变化的原因是,如果Tendermint算法的拜占庭问题小于三分之一,也可以依然正常工作。 在三个节点的情况下,它不到三分之一因此,一个节点将无法被分布式打破,因此有必要对三个节点达成共识。 另一方面,在4个单位的情况下,小于1/3, 因此,允许分布式故障少于1.44个单位,如果我们对3个节点达成共识,则该区块将被批准。 因此,可以推断3至4台机器之间的TPS没有太大差异。

总结

正如我们到目前为止所说的那样,Tendermit非常适合在创建全新且独自的区块链时使用。 因此,我们认为Tendemint适合作为区块链的候选者,可以解决MOLD的思想和以太坊不匹配的终结问题,TPS的问题并在游戏中展现必要的资产。

此外,我们认为作为平台扩展策略可以使用从私有链到公有链的是Tendermint具有的优点。

同时,像以太坊当中也有Plasma作为代表一样,显著提高TPS的策划及项目已经诞生并正在逐步实施。我们的MOLD团队将策略,计划并实施这以上两项技术,同时我们将会在开发时分析如何才能更好地构筑区块链以得到更好的发展。

— — — — — — — — — — — — — — — -
Cosmos Gaming Hub Project(前MOLD Project)
CEO&Co-Founder

朝野 巧己

为所有游戏爱好者提供最好的娱乐

--

--

GAME
GAME
Editor for

Cosmos Gaming Hub is a fair and secure distributed gaming platform which supports the development of new games and simplifies the trading of digital assets.