我正在撰写一份关于多代理适用于解决各种业务问题的文件,我看到比特币被描述为多代理: Godsiff,Philip。“比特币:泡沫或区块链。”代理和多Agent系统:技术和应用。斯普林格国际出版社,2015年。191-203。他们说
This paper sets out a brief, deliberately non-technical, overview of
Bitcoin, a new, but becoming more mainstream, crypto currency,
generated and managed by a distributed multi–agent system.我想研究并行性和标度问题的作用。据我所知,智能契约存储为块链上的字节码,然后分发到所有节点。当有人运行智能契约时,它是如何运行的?如果说1000 dapps同时运行智能契约,那么它是如何运行的呢?块链节点是否在内存中执行该代码1000次?如果数字上说是同时处决50000人,那么会发生什么呢?他们都排队等着跑吗?
我希望了解一下契约是如何运行的,以及我们是否可以应用并行性来允许大规模dapps的可伸缩性。
发布于 2017-05-15 16:43:56
智能合同以事务形式运行。这意味着它们被矿工(PoS中的验证器)打包成块,并分发到网络中。每个完整节点都验证每个块中的每个事务。
如果1000 dapps同时运行相同的合同,那么每一项都是一项不同的交易,支付自己的天然气成本。它们按任意顺序独立包装成块(取决于费用和到达时间)。每个完整的节点检查每个块。在EVM中没有并行性。
你看得出来。与基本计算相比,在验证每个块的计算能力方面,这是非常低效率的;然而,这是目前唯一被证明的允许EVM不信任的分散的方法。(请注意,这与挖掘的计算成本不同,而且与挖掘的计算成本相形见绌,挖掘主要是通过一次又一次地改变一个值来生成低于某个困难参数的块散列)。
显然,如果能将某种并行性应用到系统中,就可以获得巨大的收益。问题是以一种不可信的分散方式进行这一工作。你怎么能相信别人的计算,你还没有验证自己呢?目前对此的研究称之为“切分”。或者将链分割成不同的链,这样每个验证器大部分时间都只需要验证网络的一小部分。
这是一个困难的问题,这里有一些进一步的链接,描述了一些已经完成的工作。
https://github.com/ethereum/wiki/wiki/Sharding-FAQ
https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding
www.youtube.com/watch?v=W9b4vQ37-qQ&feature=youtu.be这个视频是关于很多事情,包括切分。
目前的计划(据我所知)是在明年某个时候PoS (Casper)最终确定之后,获得一个早期版本的切分。
https://ethereum.stackexchange.com/questions/16175
复制相似问题