区块链趋势持续增长。 越来越多的专家预测在不久的将来该技术将得到普遍应用。 目前,一些未解决的问题仍未解决。
首先,现代区块链系统无法很好地扩展。 例如,以太坊的带宽仅为每秒20个事务,尽管有很多优点,但它不适用于大型企业。
同时,以太坊因其强大的防御黑客和网络中断的能力而受到重视。 因此,您不应该注销它。 修复以太坊的缺点并将其转化为优势是更可取的。

Plasma Cash作为以太坊隐私和可扩展性的解决方案
Plasma是由以太坊项目的联合创始人Vitalik Buterin在2018年巴黎EthCC会议上介绍的一项技术。它是与Lightning Network联合创始人Joseph Pune共同开发的,并宣布作为一种增强以太坊区块链计算能力的解决方案。 2017年,首个等离子新闻泄露给媒体。
该平台是可以与主区块链进行交互的外部级别的智能合约,从而卸载了根链,从而降低了智能合约和去中心化应用程序(DApp)的交易费用。
有关开发的详细信息,请参见日期为2017年8月的“
等离子:可扩展的自主智能合约 ”。
Buterin承认Plasma存在可扩展性问题:每个用户都必须下载并验证每个Plasma块,从而防止了指数扩展。
为了纠正这一缺陷,开发了Plasma Cash-由智能合约和基于Node.js的专用网络组成的子链,该链定期将其状态转移到根链(以太坊)。 它在区块链上提供去中心化,安全性和可扩展性,从而解决了可扩展性难题。
与Plasma相比,Plasma Cash的一个重要优势在于,它只吸引用户关注那些包含他们感兴趣的硬币的区块:
“现在,用户只需要检查与他们想要花费,拥有和感兴趣的硬币相关的特殊索引,就可以检查Plasma链的可用性和正确性,” Buterin说。
根据开发商的说法,Plasma Cash是一种有效的治疗以太坊黑客的方法。 每个等离子硬币都有一个所有者,并且是唯一的。 如果没有其他用户的知识,任何人都无法拥有他的硬币。 硬币的持有者可以通过在“硬币”的历史中提供“证据”来防止通过“投诉”系统潜在的欺诈性提款。
在Mongo Atlas测试血浆现金
由于其新颖性,Plasma Cash仍未得到研究。 区块链专家正在积极测试其与各种云服务和数据库的交互,修复缺陷并找到解决方法。 特别是,在Mongo Atlas上进行的测试显示了使用Plasma时的以下优势:
- 可靠的保护,防止数据丢失 ,因为在群集中多个副本之间是同步的。
- 快速访问 ,因为可以在三个最受欢迎的云平台上创建集群:Amazon,Google,Azure。 因此,“等离子现金”节点可以部署在靠近Mongo Atlas的许多数据中心中。 我们已经证明,即使将Plasma节点部署在更多的远程数据中心中,速度也不会降低太多。
- 等离子只读节点可以连接到一个Mongo群集,并位于世界的不同地方,这提高了地理可伸缩性 (节点更接近用户)。
- 部署新节点很容易,因为您无需重新同步所有内容。 您可以简单地连接到现有的Mongo群集,也可以快速进行复制并配置与之的连接。
- 扩展数据库很容易 。 随着时间的流逝,数据变得越来越大,您可以根据需要增加集群中节点的大小。
我们使用以下服务器进行测试:- 3个虚拟Azure服务器Standard E4s v3(4个vcpus,32 GiB内存)。 在每个服务器上,将提升3个节点。 其中之一可以将块提交到根链。
- 每个节点都连接到其Mongo Atlas集群M50,该集群包含3个副本模式的节点。
测试1
3个节点每个接收10万笔交易。 总共9个节点总共包含30万笔交易和令牌。
初始状态:最后一个区块#213; 数据库中存储了0个交易和令牌。
00:00-启动3个脚本,生成并发送10万笔交易
00:29-开始向节点1和2发送10万笔交易
00:32-已开始向节点3发送10万笔交易
00:32-节点#1从池中接收了11703个事务,并形成了块214(9fb)
00:34-Noda#2从集合中获取了27088笔交易,并形成了214号区块(ef4)
00:34-区块#214(9fb)已签名并发送到其他节点进行验证
00:36-Noda#3从游泳池中提取了11900笔交易,形成了214号区块(983)
00:37-验证了#214块(9fb)并将其发送到根链
00:38-区块214(983)已签名并发送到其他节点进行验证
00:38-区块214(ef4)已签名并发送到其他节点进行验证
00:40-区块214(983)已验证并发送到根链
00:41-从根链收到的所有节点的信息均已添加了块#214(9fb),并且开始应用11703个事务
00:45-从根链收到的所有节点的信息均已添加了第215号块(983),并且开始应用11900个事务
00:51-区块214(ef4)已验证并发送到根链
00:52-节点#1从池中接收了51,469个事务,并形成了块#216(ea0)
00:56-Noda#3从交易池中提取了55102笔交易,形成了216号区块(f75)
00:58-演示脚本完成了节点2的工作
00:58-区块#216(ea0)已签名并发送到其他节点进行验证
00:58-从根链收到的所有节点的信息均已添加了块#216(ef4),并且27088事务开始应用
01:04-块#216(f75)已签名并发送到其他节点进行验证
01:14-Noda#2从池中提取了72912笔交易,形成了217号区块(f85)
01:15-演示脚本完成了对节点1和2的工作
01:17-验证块#216(f75)和#216(ea0)并将其发送到根链
01:21-块217(f85)已签名并发送到其他节点进行验证
01:26-将块217(f75)和块218(ea0)添加到根链中,并且节点分别开始应用51469和55102事务
01:27-区块217(a85)已通过验证并发送到根链
01:41-Noda#1从交易池中提取了36828笔交易,形成了219号区块(46f)
01:41-Noda#3从集合中获取了32998笔交易,形成了219号区块(bb3)
01:43-从根链接收到的所有节点的信息都已添加了块#219(a85),并且开始应用72912事务
01:46-块#219(46f)已签名并发送到其他节点进行验证
01:46-块#219(bb3)已签名并发送到其他节点进行验证
01:53-Noda#2处理了池中的所有10万笔交易
02:37-验证了区块219(bb3)并将其发送到根链
02:41-验证了#219块(46f)并将其发送到根链
02:48-将块#220(bb3)和#221(46f)添加到根链,并且节点分别开始应用32998和36828事务
02:54-节点1处理了池中的所有10万笔交易
02:55-Noda#3处理了池中的所有10万笔交易
04:12-所有节点都包含30万笔交易和令牌,最后一个块#221
测试2
3个节点接收1kk的交易。 所有9个节点中的Total包含3kk个事务和令牌。
初始状态:最后一个区块#213; 数据库中存储了0个交易和令牌。
00:00-启动3个脚本来生成和发送1kk交易
02:29-开始向节点1和2发送1kk交易
02:33-Noda#1从交易池中提取了11668笔交易,形成了222号区块(510)
02:35-块#222(510)已签名并发送到其他节点进行验证
02:37-验证了#222块(510)并将其发送到根链
02:38-Noda#2从池中提取了46378笔交易,形成了222号区块(a9d)
02:38-开始向节点3发送1kk交易
02:41-Noda#3从交易池中提取了5504笔交易,形成了222号区块(387)
02:42-区块#222(387)已签名并发送到其他节点进行验证
02:44-块#222(a9d)已签名并发送到其他节点进行验证
02:44-验证区块#222(387)并将其发送到根链
02:49-验证了#222块(a9d)并将其发送到根链
02:56-将块#222(510)#223(387)和#224(a9d)添加到根链,并且节点分别开始应用11668、5504和46378事务
03:09-Noda#1从交易池中提取了177170笔交易,形成了#225块(e50)
03:09-节点#3从池中提取了119327个事务,并形成了块#225(ccc)
03:10-野田2号(Noda#2)从游泳池中夺走了149772笔交易,形成了225号块(404)
03:26-块#225(ccc)已签名并发送到其他节点进行验证
03:32-块#225(404)已签名并发送到其他节点以进行验证
03:33-块#225(e50)已签名并发送到其他节点进行验证
03:53-验证了#225块(ccc)并将其发送到根链
04:03-验证了#225块(e50)并将其发送到根链
04:04-验证了区块225(404)并将其发送到根链
04:06-从根链收到的所有节点的信息都已添加了块#225(ccc),并且开始应用119327事务
04:14-从根链收到的所有节点的信息均已添加了块#226(404),并且开始应用149772交易
04:16-从根链收到的所有节点的信息都已添加了块#227(e50),并且开始应用177170事务
04:32-节点#3从池中提取了209436笔交易,并形成了块228(1e9)
04:40-Noda#2从交易池中接收了212669笔交易,形成了第228块(e38)
04:40-Noda#1从游泳池中提取了190144笔交易并形成了228号区块(861)
05:02-块228(1e9)已签名并发送到其他节点进行验证
05:08-块228(861)已签名并发送到其他节点进行验证
05:10-块#228(e38)已签名并发送到其他节点进行验证
06:13-验证块228(1e9)并将其发送到根链
06:13-验证了第228号区块(861)并将其发送到根链
06:13-区块228(e38)已验证并发送到根链
06:39-将块#228(861)#229(1e9)和#230(e38)添加到根链,并且节点分别开始应用190144、209436和212669事务
07:07-Noda#1从交易池199770中提取并形成了#231区块(e04)
07:09-野田2号从游泳池中接收了190473笔交易,形成了231号块(36e)
07:09-野田3号(Noda#3)从游泳池中获得了178807笔交易,形成了231号块(f43)
07:34-区块#231(e04)已签名并发送到其他节点进行验证
07:37-区块#231(36e)已签名并发送到其他节点进行验证
07:37-块#231(f43)已签名并发送到其他节点进行验证
08:49-验证了#231块(e04)并将其发送到根链
08:51-区块#231(f43)已验证并发送到根链
08:52-区块#231(36e)已验证并发送到根链
09:47-将块#231(e04)#232(f43)和#233(36e)添加到根链,并且节点分别开始应用199770、178807和190473事务
10:16-Noda#1从交易池中获取了153075笔交易,并形成了#234块(e04)
10:16-Noda#2从池中获得168035笔交易,形成了#234块(36e)
10:16-野田3号从游泳池中获得166685笔交易并形成234号块(f43)
10:42-块#234(56d)已签名并发送到其他节点进行验证
11:59-验证了#234块(1bb)并将其发送到根链
12:02-区块#234(58a)已验证并发送到根链
12:02-区块#234(56d)已验证并发送到根链
12:48-将块234(1bb),块235(58a)和块236(56d)添加到根链,并且节点开始分别应用153075、168035和166685事务
13:14-节点#1从池中提取了112226个事务,并形成了块#237(5c0)
13:16-节点2从池中提取了87550笔交易,形成了模块234(58a)
13:16-节点3从池中获取了99594笔交易,形成了模块234(56d)
13:30-块#237(5c0)已签名并发送到其他节点进行验证
13:32-块#237(58a)已签名并发送到其他节点进行验证
13:34-块#237(56d)已签名并发送到其他节点进行验证
14:47-验证了237号区块(58a)并将其发送到根链
14:53-块#237(5c0)在指定时间内未得到验证
14:53-从根链收到的所有节点的信息均已添加了块#237(58a),并且开始应用87550事务
14:54-验证了#237块(56d)并将其发送到根链
15:02-Noda#1从交易池中提取了181206笔交易,并形成了#238块(c5f)
15:06-从根链收到的所有节点的信息都已添加了块#238(56d),它们开始应用99594事务
15:12-野田2号(Noda#2)从奖池中提取了51990笔交易,形成了239号区块(ad8)
15:20-块#239(ad8)已签名并发送到其他节点进行验证
15:25-Noda#3从交易池中提取了46685笔交易,形成了239号区块(857)
15:30-块238(c5f)已签名并发送到其他节点进行验证
15:34-块#239(857)已签名并发送到其他节点进行验证
16:32-区块239(857)已验证并发送到根链
16:42-从根链收到的所有节点的信息均已添加了第239号区块(857),并且开始应用46685个事务
16:42-验证块238(c5f)并将其发送到根链
16:42-块#239(ad8)在指定时间内未得到验证
16:54-Noda#2从交易池中提取了96882笔交易,形成了#240块(e6e)
16:56-Noda#3从交易池中提取了39704笔交易,形成了第240块(a47)
17:02-块#240(a47)已签名并发送到其他节点进行验证
17:02-块#240(e6e)已签名并发送到其他节点进行验证
17:18-从根链接收到的所有节点的信息均已添加了块#240(c5f),并且开始应用181206事务
17:45-验证了区块#240(a47)并将其发送到根链
17:47-Noda#1从交易池中提取了54956笔交易,形成了241号区块(170)
17:59-区块241(170)已签名并发送到其他节点以进行验证
18:09-从根链收到的所有节点的信息都表明已添加了块#241(a47),并且开始应用181206事务
18:20-Noda#3从交易池中提取了39104笔交易,形成了242号区块(955)
18:24-验证了#240块(e6e)并将其发送到根链
18:28-区块#242(955)已签名并发送到其他节点以进行验证
18:09-从根链接收到的所有节点的信息都已添加了块#242(e6e),并且开始应用96882交易
19:06-演示脚本完成了节点1的工作
19:08-演示脚本完成了节点2的工作
19:08-Noda#2从交易池中提取了48241笔交易,形成了第243块(FDE)
19:14-块#243(fde)已签名并发送到其他节点进行验证
19:18-编号241(170)在指定时间内无效
19:28-节点#1从池中提取了86967个事务,并形成了块243(37c)
19:35-验证第242号区块(955)并将其发送到根链
19:40-块#243(37c)已签名并发送到其他节点进行验证
20:05-从根链收到的所有节点的信息都表明已添加了块#243(955),并且开始应用39104个事务
20:15-验证了第243号块(fde)并将其发送到根链
20:19-野田3号从游泳池中提取了42981笔交易,形成了244号块(9b5)
20:26-块#244(9b5)已签名并发送到其他节点进行验证
20:28-所有节点都从根链接收到添加了块#244(fde)的信息,并且开始应用48241事务
20:32-节点2处理了池中的所有1kk事务
21:05-块#243(37c)在指定时间内未得到验证
21:15-节点#1从池中提取了86967个事务,并形成了块245(37c)
21:32-块#245(37c)已签名并发送到其他节点进行验证
21:42-验证了区块#244(9b5)并将其发送到根链
21:50-从根链收到的所有节点的信息均已添加了块#245(9b5),并且开始应用42981事务
22:04-Noda#3从池中提取了45361笔交易,形成了246号区块(3f9)
22:11-块246(3f9)已签名并发送到其他节点进行验证
22:51-块#245(37c)在指定时间内未得到验证
23:01-节点#1从池中提取了86967个事务,并形成了块246(37c)
23:08-演示脚本完成了对节点#3的工作
23:15-块246(37c)已签名并发送到其他节点进行验证
23:32-块#246(3f9)在指定时间内无效
23:42-Noda#3从交易池中接收了52173笔交易,形成了246号区块(71d)
23:51-块#246(71d)已签名并发送到其他节点进行验证
24:38-在指定时间内未验证区块246(37c)
25:01-节点#1从池中提取了86967个事务,并形成了块246(37c)
25:06-验证第246号区块(71d),并将其发送到根链
25:12-块246(37c)已签名并发送到其他节点进行验证
25:14-所有节点从根链接收到添加了块#246(71d)的信息,并开始应用52173事务25:29-节点#3处理了26:40 池中的所有1kk事务-块#247 (37c)在指定时间内未验证26:47-节点#1从池中提取了86967个事务,并形成了块#247(37c)27:03-已对块#247(37c)签名并发送给其他节点以进行验证28: 29- 单元#247中(37℃)为未在规定时间provalidirovan内28:35 -野田1号从86967个交易和形式的单元的库中取出#247(37℃)28:49 -单元#247(37℃)进行签名并将其发送到上的其它节点alidatsiyu30:13 -单位#247(37℃)不provalidirovan在指定时间30:23-节点1从池中提取了86967个事务,并形成块247(37c)30:38-块247(37c)已签名并发送给其他节点进行验证32:00-块247(37c)未通过验证在指定的时间32:11-节点#1从池中提取了86967个事务并形成块#247(37c)32:26-块#247(37c)已签名并发送给其他节点以进行验证33:49-块#247(37c)在指定的时间内无效-33:59-节点1从池中提取了86967个事务并形成块247(37c)34:12-块247(37c)已签名并发送到其他节点以进行验证35:34-块247 (37c)已验证并发送要求中的根链35:54-所有节点都从根链接收到添加了块#247(37c)的信息,并且它们开始应用86967事务36:11-节点#1处理了55:12 池中的所有1kk事务-处理了第一个节点全部3kk交易
总结
据透露,Azure虚拟服务器没有足够的处理能力来处理如此大量的事务。但是,由于测试的主要任务,即用MongoDB演示Plasma Cash的工作,该系统很好地应对了。我们邀请您访问GitHub的项目:https://github.com/opporty-com/Plasma-Cash/tree/new-version文章写于合作与亚历山大Nashivanom,高级开发人员聪明的解决方案公司。以前,Opporty开发团队已经测试过Plasma Cash的速度。结果在本文中介绍。