首都北京的虚拟货币大咖们都看好borderless无界币未来的升值空间对此各位圈内朋友有何见解?

来源:本站 浏览

小编:  可选中1个或多个下面的关键词,搜索相关资料

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  高性能的区块链技术对加密货币和智能合约平台来说是必须的,能够为业界提供一个有可能代替现有金融平台的解决方案。为了能够实现比VISA和MasterCard每秒可以处理交易数量更快的速度,无界从底层开始重新设计。通过股份授权证明机制,无界网络可以在平均一秒的时间内确认超 10 万次转账交易。

  要达到行业里面最顶级的性能,无界借鉴LMAX交易所的经验。这个 LMAX 交易所可以在每秒内处理高达 6 百万次的交易。无界借鉴其技术的关键点,如下:

  通过遵守这些简单的规则,无界在未进行颠覆式优化工作的情况下,实现了每秒处理 10 万次转账的高效性能。如果有进一步的优化工作的话,会让无界可以达到与 LMAX 交易所相近的性能表现(即每秒 600 万次)。需要注意到,无界达到这样的性能表现是高度依赖其中的一个兼容交易协议。如果想用业务逻辑运行在一个进行加密算法操作和用哈希识别器去调用所有对象的虚拟机上的话,不可能达到同样层级的性能表现。区块链天生就是单线程的,而单核的 CPU 的性能是各种资源中最短缺的、最难扩展的一个方面。 无界的技术逻辑能够让这个单线程的执行达到极可能的高效。

  区块链是一个下达关于确定去修改一个共享的全局状态交易的全球账本。这些交易中包含的命令可以改变其他交易的有效性。例如,你不能在你的支票存入生效前,从你的银行账户里支取金额。在能够影响一个特定的账户的所有先前交易都被处理之前,你不可能知道一个交易是否有效。 如果两个无关联的账号没有共享任何通用的依赖关系的话,理论上这两个账号的交易可以是在同一时间进行处理的。实际上,在一个由具备仲裁条件的智能合 约驱动的账本上识别哪些交易是真正独立存在的耗费是很棘手的。唯一的保证两个交易是真正独立存在的方法,是通过维护完全分离的账本,然后定期在它们之间传输价值。如果要用这种性能表现的权衡关系去打比方的话,可以像是非一致内存访问架构(Non-Uniform Memory Access ,NUMA)和一致内存访 问架构(Uniform Memory Access ,UMA)之间的关系。 实际上,一致内存访问架构对开发者来说是更容易去设计的,而且耗费更低。非一致内存访问架构通常是在建造超级计算机和大型计算机集群时作为不得已的方法去采用的。 计算机产业逐渐意识到通过平行计算去实现性能的扩张并没有早期那么容易,毕竟那时候最需要做的事情只是提高处理器的频率而已。就是因为这个原因,处理器的设计者们在尝试去采用多线程设去提高性能之前都在拼命去提高单线程的性能。当多线程还不够的话,而且只有这样的话,集群计算这个方案才会被考虑。

  很多加密货币产业的人在没有探索过在技术上一台电脑的单个核心能实现什么之前,就尝试通过用集群计算的方案去解决可扩展性的问题。

  LMAX 分解器提供了一个在单线程上可以实现什么表现的学习例子。LMAX 是一个针对终端顾客的交易平台,目标是成为世界上最快的交易所。它们一直很慷 慨地将他们学到的东西公布出来。

  业务逻辑处理器是所有顺序交易和订单匹配发生的地方。它是一个可以每秒处理百万级别订单的单线程。这个架构可以很容易地用在加密货币和区块链设计的 领域。 输入分解器扮演的角色是从很多来自不同源头的用户里面收集订单,然后分配给它们一个确定的顺序。当给它们分配好顺序后,它们会被复制、记录然后广播 到很多冗余的业务逻辑处理器。输入分解器是高度并行的,而且容易分包到一个计算机集群系统中。 当业务逻辑处理器处理完输入后,一个输出分解器负责通知那些关心结果的人。这也是一个高度并行的任务。 最终,通过在业务逻辑处理器里使用单线程样品化处理器和 Java 虚拟机,LMAX 可以在每秒内执行 600 万次交易。如果 LMAX 可以达到这个成绩,那么加密 货币和智能合约平台平不需要在每秒连 10 个交易都不到的情况下去考虑集群网络方案。 高性能区块链

  要建造一个高性能的区块链,我们需要使用 LMAX 同样的技术。这是几个必须实现的事项: 将所有东西放在内存上,避免同步原语(锁定,原子操作),避免在业务逻辑处理器上不必要的计算。 由于内存的设计是高度并行的,因此越来越便宜。追踪互联网上每个人的账户余额和权限所需要的数据量是可以放在小于 1TB 的 RAM 内存上,这用不到 15000 美元的价格就能买到了,而且可以装在商品化(高端)的服务器主板上。在这个系统被 30 亿人采用之前,这类硬件会在普通的桌面计算机里面看到。 真正的瓶颈不是内存容量的需求,而是带宽的需求。在每秒 100 万次交易和每笔交易占 256 字节的情况下,网络会需要 256MB 每秒的数据量,即 1Gbit/s 的 带宽。这样的带宽在普通的桌面计算机上并不是常见的。不过,这样的带宽只是二代互联网 100Gbit/s 带宽的一点而已。这个二代互联网被供应给超过 210 个 美国教育机构、70 家公司和 45 个非盈利机构和政府机构。

  另一句话说,区块链技术可以轻松将所有东西保存在内存里,而且如果设计的合理的话可以扩展到支持每秒百万级别的转账。

  在单线程系统的系统里面,处理器周期是需要被保留的稀缺资源。传统的区块链设计使用加密算法基础上的哈希计算去生成一个全球独特的ID系统,以实现统计学上不会有碰撞的保证。进行这些哈希计算的问题是,它会耗用越来越多的内存和处理器周期。与一个直接的数组索引相比,这种方式会显著地占用更多处理器的时间去查找一个账户的记录。例如,64位的整数对比和操作起来都要比160位以上的ID更简单。更大的哈希ID机制意味着CPU缓存里面的空间更少了,而需要更多的内存。在现代的操作系统里不常访问的随机存储器是会被压缩的,不过哈希识别器是随机数,这是没法压缩的。型号区块链给了我们一个在全球内分配独特的ID的方法,这些ID互相之间不会起冲突,因此完全避免使用像比特币地址那样的哈希算法为基础的识别器去引用一个账号、余额或者许可。

  所有在加密货币网络的交易依赖于用加密算法签名去校验权限。大部分情况下,请求的权限可以由其他交易的结果改变。这意味着在业务逻辑处理器里面,权限需要被定义成与加密算法计算无关的情况。

  要达到这个目的,所有的公钥需要分配一个独特的和不可代替的ID。当ID被分配后,输入分解器可以校验提供的签名与指定的ID是否匹配。当交易到达业务逻辑处理器后,只需要去检查ID就可以了。

  这个同样的技术可以在拥有不可代替的静态ID的对象上实现去除前提条件检查。

  对交易来说,有很多特性是可以进行静态检查的,而不需要引用当前的全局状态。这些检查包括参数的范围检查、输入的去冗余和数组排序等。通常来说,有很多检查是可以被进行的,如果交易包含它“假设”是全局状态的数据的话。在这些检查被执行后,业务逻辑处理器必须要做的事情就只有去确保这些假设还是正确的,这个过程总结下来就是检查一个涉及交易签名时间的对象引用的修改时间戳。

  很多区块链正在整合一种通用的脚本语言去定义所有的操作。这些设计最终将业务逻辑处理器定义为一个虚拟机,而所有的交易被定义为由这个虚拟机运行的脚本。这个方案有一个在真实处理器上的单线程性能极限,并且由于将所有东西强制通过一个虚拟处理器去执行,让问题更严重了。一个虚拟处理器即使用上了实施编译技术(JIT)也总会比一个真正的处理器要慢,不过计算速度并不是这种“任何东西都是一个脚本”方案的唯一问题。当交易被定义在这么低的层次上,意味着静态检查和加密算法操作还是会被包含到业务逻辑处理的环节里,这也让会让整体的吞吐量降低。一个脚本引擎永远不应该要求执行一个加密算法签名检查的请求,即使这个请求是通过原生的机制实现的。

  根据我们从LMAX上学到的课程,我们知道一个为区块链设计的虚拟机应该考虑到单线程表现。这意味着在一开始就要为实施编译优化,而且最常用的智能合约应该通过区块链原生支持,而只有那些不常用的、定制的合约会运行在一个虚拟机上。这些定制的合约设计的时候要考虑性能,这意味着虚拟机应该将可以访问的内存范围限制到可以放在处理器缓存上的级别。

  在内存中保存所有东西的其中一个好处是,软件可以设计成模仿现实世界中数据的关系。这意味着业务逻辑处理器可以迅速根据内存内的指针去找到数据,而不是被迫去进行耗费高的数据库查询任务。这意味着数据不需要复制就能访问了,而且可以当场就被修改。这个优化提供了比任何数据库为基础的方案高一个数量级的性能表现。

  Borderless无界系统的高效性能的成功创建,是建立在在核心业务逻辑上去除与关键性、订单依赖性和评估无关的计算任务,并且设计一个可以帮助优化这些事项的协议。这就是无界做的事情。

当前网址:http://www.hbxwzx.com/caijing/2019-10-17/143436.html

免责声明:本文仅代表作者个人观点,与北方资讯网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

你可能喜欢的: