快捷搜索:  as  test

基于区块链技术的商业级基础设施RubyChain路链介

无论比特币、以太坊照样其他公共区块链项目,为了营业逻辑、技巧实现的简单,对付天生的区块都只有一种类型区块,首尾相链,形成区块链,于是带来几个普遍而又难以逃避和办理的问题:

· 数据臃肿:数据量越来越大年夜,到着末会达到无比的宏大年夜,今朝比特币的区块大年夜约180G,以太坊的区块已跨越200G,同步必要数周以致数月的光阴,今朝的办理法子是采纳轻钱包,可是轻钱包的问题是向轻钱包的供给商的办事器端哀求数据,掉去了去中间化的意义,弗成避免的会带来安然隐患,因为同步问题的存在,对付个体而言,区块链系统设计的再快的买卖营业确认机制,都变的没故意义。

· 存储瓶颈:今朝的区块链设计只能实现同一(独一)数据的全备份存储,不能用于散播式的碎片化存储,不能实现真正意义上的散播式存储,只是将一份数据分手放在了很多地方,将一份数据存储在了多个区块链用户的硬盘上而已,对付大年夜型利用系统至关紧张的存储而言,弗成避免的成为瓶颈,因为只能扁平化的叠加,存储办理不了,大年夜型行业利用就没有可能迁移到区块链上。

· 审核机制不健全:智能合约交互支配在主链上,是以主链会变的越来越臃肿,对付散播式谋略的实时谋略和利用变的效率也会越来越低,同时利用短缺审核机制或者说审核机制不健全,弗成避免的会影响主链的安然性,终极会限定利用范围和成长。

· 迁移难度高:针对行业、企业级利用迁移至区块链平台难度大年夜。

Ruby特点简述

基于现有区块链体系所碰到的问题,我们从新思虑并设计了 Ruby,在提升传统公共区块链所有技巧机能的同时推出了大年夜数据模块、智能事物合约引擎、类 N*RAID5 链外利用扩展存储等技巧观点,使大年夜量 DAPP 基于 Ruby 公共区块链开拓落地变为现实,Ruby 主要技巧特点如下:

特点一:底层 1080 笔/秒买卖营业速率,添加节点与分片,可支持百万笔/秒买卖营业速率。

特点二:快速自由发行数字资产、快速开拓 Dapp。

特点三:完全去中间化原子买卖营业和链上资产互换。

特点四:成块光阴 15 秒,单笔数据买卖营业量可达 2M,单块可达 16M。

特点五:独占的数据模块,原生支持场景化智能合约,直接开放链上数据接口,可基于

所有已知成熟开拓对象自由定制开拓 Ruby Dapp。

特点六:支持跨链资产转移与互换,支持链外币种的数据同步,同步后可在 RubyChain中直接进行所有币种的买卖营业。

特点七:首个商用级其余完全去中间化的类 N*RAID5 链外利用扩展存储,机能优良,链外利用历程无感。

特点八:首个线上 Dapp 软件市廛,完善的生态成长体系。

生态体系的架构与扶植

1. 安然可托赖的生态架构

Ruby根据买卖营业历程中不合环节的功能,在逻辑上将节点角色分为四种,让不合类型节点可以关注处置惩罚不合类型的事情负载。

· 孵化节点:孵化 Dapp 项目,供给项目孵化办事,成长 Ruby 生态。

· 共识节点:采纳 Ruby working 共识机制,介入共识。

· 存储节点:为所有利用的链外数据(链外利用块)供给全节点存储办事。

· 买卖营业节点:为链上原子买卖营业(币币兑换)供给买卖营业确认办事。

· 通俗节点:通俗钱包用户即为一个通俗节点,具有发送、查询买卖营业、资产兑换等基础功能,同步整个区块;

· 轻节点:不合步整个区块数据,具有转账、接管买卖营业等基础功能。

2. 生态体系内的多元化原子买卖营业

在 Ruby 的整体生态中,流畅将是全部经济体永恒不变追溯的主题,一个天下中,只有资产快速自由的流动,才会有无尽的生命力,而非一潭逝世水。

在以前的几年中,区块链+金融主要办理的是单一资产在自身段系内流动的问题,这并不能办理全部区块链生态成长的必要。付与数字资产代价,而不是仅仅简单的记录,是 Ruby要打造的多元化原子买卖营业体系,终极实现大年夜流畅的效果。

Ruby原子买卖营业支持原生资产、通证资产和跨链转移资产,支持链上资产直接兑换,原子买卖营业时必要扣除手续费,手续费应用原生资产。

未来,Ruby 将推动万物数字化,万物皆资产的生态目标,例如将某 A 的数字资产哈希化存储在数据模块中,某 B 的片子版权哈希化存储在数据模块中,双方调用智能合约直接进行原子买卖营业,发生资产兑换。

3. 散播式商业生态,互联网到区块链的快速迁移

为实现互联网期间向区块链期间的快速转化,完善扩充 Ruby 的生态体系,快速迁移将显得尤为紧张,在浩繁公共区块链还在打磨自身技巧的时刻,Ruby 率先实现了快速迁移的可能,使用大年夜数据模块+多说话支持+模块化接口调用的要领,使得传统互联网的通俗开拓者也可以基于 Ruby 进行开拓,同时可以快速的将以往的产品接入 Ruby 生态。

4. 商业级智能物联网考试测验,打造海量用户进口

RubyBox 是 Ruby 考试测验研发的第一款根基举措措施硬件,此次智能物联网硬件的考试测验将不会在短光阴内宣布,但 Ruby 团队将会对智能物联领域持续的深耕。

Ruby 在企业级用户端将借助 RubyBox 商用版搭建区块链高速公路,未来 Ruby 可以为任何区块链系统供给加速办事,包括但不限于 CDN 加速、节点加速、链盘等。同时基于Ruby 生态进行开拓的 Dapp 也会享受到加速办事。

RubyBox 在用户级端将供给以下办事:

私人家庭安然云盘:经由过程 RubyBox,可以将终端设备(PC、MAC、手机)上的私人文件安然存储在 RubyBox 上,在世界任何的位置安然自由的造访自己的私人文件。

私人家庭媒体中间:经由过程 RubyBox,可以将影音文件安然下载存储在 RubyBox 上,随时随地可以经由过程终端(PC、手机、MAC、智能电视)欣赏大年夜片。

无限延展智能硬件:RubyBox 是开放的、共享的、互联的。未来,会有更多的区块链利用系统登录 Ruby,RubyBox 将成为充溢无限想象的智能硬件中间,经由过程 RubyBox 得到的资产将成为生态内的专属交融付脱手段。

RubyBox 未来或将是 Ruby 宣布的首款智能物联设备,以此开启线下大年夜用户流量进口期间。

Ruby 技巧现状

1. Ruby 收集构成

Ruby 的收集组因素为以下几个方面:

· 底层核心层的区块链收集构成包括:基于 UTXO 模型的账户体系、原子买卖营业、共识机制、数据模块、跨链协议等。包管全部 Ruby 生态的消息广播同等性、数据安然与存储,同时包管全部经济体的高度自治与流畅。

· 中层办事层的区块链收集构成包括:CLI、RPC 调用接口,包管任何说话的开拓者可以调用 Ruby 供给的模块化功能进行开拓,通俗的开拓者无需过多的懂得区块链技巧即可进行大年夜型利用的开拓与迁移,享受区块链带来的便捷与改变。

· 最高层是利用层:此中包孕 Ruby 供给的官方利用及未来生态开拓者自立开拓的Dapp,利用层将是未来 Ruby 运营的核心重点,海量的落地利用会使得 Ruby 的生态更康健茁壮的成长。

2. Ruby working 共识机制

传统 POW 共识机制对算力及收集情况要求较高,资本耗损严重,且存在高算力对收集进击的要挟。对此 Ruby 针对 POW 算法机制进行改良处置惩罚,形成 Ruby working 共识机制。

在 Ruby working 共识机制中,保留传统 POW 事情量证实函数 SHA256:

在 Ruby 系统中,基于探求给定前缀的 SHA256 哈希值,设计了事情量证实的共识机制; SHA256 也被用于构造地址,即用来识别不合的用户。

相对传统 POW 共识算法,Ruby working 共识机制中添加了 Rotation 事情轮换证实算法以及 Contribute 系统供献算法。此中 RotaTIon 事情轮换证实算法是在收集共识节点中随机轮转部分共识节点进行赞许买卖营业,并鄙人一轮轮转时提出一个采矿难度,认可此采矿难度的节点成为下一轮次确认节点并进行记录,同时设置采矿限定,同一节点弗成继续介入多次轮换采矿。这种布局容许更多的矿工介入买卖营业赞许,在确保没有固定的可能被破坏的验证顺序的同时也节省了资本的耗损。

下图为 RotaTIon 事情轮换证实算法流程图,此中 N 为当前批次,n 为根据当前共识节点总量划分的轮换批次:

Contribute 系统供献算法是在共识机制中,对付介入共识的节点所供献的带宽、硬盘等资本进行数字量化,并根据供献的若干,系统给予必然数量的奖励。Contribute 系统供献算法公式如下:

Ruby 将增添孵化节点机制,孵化节点与传统意义的超级节点比拟有本色的不合,传统的超级节点多采纳 DPOS 机制,相称于竞选机制,于是会在历程中呈现很多灰色手段,这些毫无意义的竞争和进击着实是对公共区块链最大年夜的危害,终极也会成为超级节点垮掉落的身分。

而孵化节点则是为了 Ruby 生态的成长,把人道最善的一壁办事于 Ruby,办事于 Ruby开拓者和生态,孵化优质区块链项目越多,得到收益越多。

孵化节点是复合节点,承担四种角色,未来根据成长可能会进行分类架设,超级孵化节点的选择将从社群规模、地区资本、技巧水平、资历履历等四个方面综合评估后选择,超级孵化节点不设数量限定,将根据成长环境合时增添,超级孵化节点不以硬件比拼作为主要竞争身分,原则上规定统一的硬件设置设置设备摆设摆设和按期统一进级策略,其项目孵化能力将是其得到收益的最大年夜依据——“孵化即挖矿”模式。

3. 多链并行

Ruby 收集设计多链并行:(主链)公共区块链、(侧链)私有链、(侧链)同盟链、测试链。侧链借助双向挂钩及混杂挖矿技巧,代币可在主链和侧链间以特定形式流转,采纳UTXO 模型。侧链分担主链的包袱,大年夜部分的利用运行于侧链。

3.1 主链

Ruby 的核心,保持代币运行,去中间化,共识机制采纳 Ruby working 算法,主链的各个节点可以自由加入及退出收集,并参加链上数据读写,运行时节点以扁平的拓扑布局互联互通,收集中不存在任何中间化的办事端节点。智能合约是主链的核心利用,同时也是自动化,智能化的根基。

3.2 侧链

侧链分为私有链和同盟链,私有链和同盟链并非完全去中间化,私有链利用和同盟链利用可以设有区域中间,利用开拓者可以将利用运行在侧链上。

同盟链:同盟链各个节点平日有与之对应的实体机构组织,经由过程授权后才有资格加入或退出收集。各机构组织组成利益相关的同盟,合营掩护收集康健运转,采纳优化的 POS 机制。

私有链:私有链各个节点的写入权限归内部节制,读取权限视需求有选择性地对外开放。私有链仍旧具备区块链多节点运行的通用布局,适用于特定机构的内部数据治理与审计,其共识机制采纳优化的 POS 机制。

测试链:测试链承担开拓利用上线前的测试。

4. 立异的碎片化存储模式

4.1 双螺旋分子布局区块链

主链、侧链均采纳类 DNA 双螺旋分子布局区块链,将区块链的底层成链技巧由单一扁平区块链向双螺旋分子布局区块链转变。

在各个区块以及双螺旋链中的链接沟通中, 我们将所有区块想象成人类的 DNA,则双螺旋布局中左旋链与右旋链数据交互的 RUB 谋略数学模型如下:

偏置的更新算法:

偏置先容:

若每次谋略从第一个区块开始算起,则运算速率过慢。例如,存在点(1,1),点(2,2),无法从原点画一条直线将其成两类,必要偏置值使得线段不从(0,0)点启程而是从更得当的点启程。

偏置的更新公式:

权值更新公式的由来:

桥接块到右旋链的权值更新

4.2 数据模块

数据模块体系将账户买卖营业和数据分离,以此包管在大年夜容量数据上链的条件下保持 TPS效率,数据模块作为 Ruby 的通用数据存储供给了高档抽象和 API,可实现链上三种不合类型数据库

· NoSQL 型键值数据库;

· 身份驱动型数据库,根据详细发送者和吸收者查询,分类;

· 采取平稳序列模型数据库,平稳数据变更,打消经久趋势和差分解,可用于条款排序。

Ruby 数据模块容许区块链用作通用附加数据库,区块链供给光阴戳,公正和不变性。

可以创建随意率性数量的数据模块,每个数据模块宣布的数据由创建者存储,此中每一个都可以向所有人开放以供写入,或者只能从特定地址写入。假如一个节点选择订阅数据模块,它将索引该数据模块的内容以便以各类要领进行高效检索,若未订阅数据模块,则无需为其付出算力。

每个数据模块中的每条数据都是有序的项目列表,此中每条数据的款式如下:

{“senditemers”:[ “18q9dh.。.ptW43E”

],“keys”:[ “key1”, “key2”

],“data”:”data”, “confirmaTIons”:11, “blockhash”:”00e9c6.。.2c513”, “blockindex”:1, “blockTIme”:1528439220, “txid”:”acf36.。.9e2”, “vout”:0, “valid”:true,

“time”:1528439184, “timereceived”:1528439184

}

每条数据具有如下特性:

· 一个或多个 senditemers 已完成数字署名的项目;

· 一个或多个长度在 0-256 字节之间的 key 值,可以使用 key 值进行索引;

· data,可寄放几 M 的数据;

· 支持寄放布局化的 JSON 工具,易写易读。

假如一个节点订阅了该数据模块,可以经由过程以下几种要领来进行索引查询:

· 根据 key 值索引;

· 根据 senditemers,也便是创建者索引;

· 根据 txid,blockindex,blockhash 等进行索引。

数据模块的设计使得链与链之间交互变得简单、高效,将会办理链上币币买卖营业、跨链资产兑换以及场景化智能合约等固有问题。

4.3 无感链外扩展存储

区块链利用法度榜样开拓实现分散式链外数据传输,一个常见的选择是采纳现有的对等文件共享平台,例如 IPFS,并将其与区块链结合应用。但 IPFS 具有以下几个毛病,并不能高效便捷的与区块链进行结合:

· 每个介入者必须安装,掩护和更新三个自力的软件(区块链节点,IPFS 节点和中心件),每个软件都将其数据存储在不合的位置。

· 两个自力的点对点收集,每个收集都有其设置设置设备摆设摆设,收集端口,身份系统和许可。

· 将 IPFS 和区块链慎密结合在一路会使中心件变得越来越繁杂,同时面临中间化的风险。

针对 IPFS 与区块链结合的毛病和风险,Ruby 经由过程以下便捷高效的要领完成了与链外数据的交互同步,同时规避了可能呈现的中间化风险:

宣布节点将新数据写入其本地存储,将大年夜型项目分块,自动构建宣布链外数据的事务,该事务被署名并广播到收集,在节点之间传播并以平日的要领进入区块链。当数据需求节点对链外数据引用时,会将该数据的 HASH 哀求添加到其检索行列步队中,并作为后台进程。假如节点的检索行列步队中有此 HASH,则将查询发送到收集以查找有此 HASH 标识的区块。这些查询以点对点的要领传播到收集中的其他节点。具稀有据的任何节点都可以相应,并且该相应沿着与查询相同的路径被中继给用户。假如没有节点应答查询,则该 HASH 查询哀求将返回到行列步队以供稍后重试。假如长光阴无节点相应,需求节点将再次向收集发送哀求。假如有节点接管哀求,接管节点根据哀求验证数据的大年夜小和 HASH 值,发送响应数据,数据检出完毕后,接管节点将数据写入本地存储,使其急速可用于经由过程 API 进行检索。假如哀求的内容没有接管到,或者与所需的 HASH 或大年夜小不匹配,则将该哀求返回到行列步队中,以便需求节点从其他源中检索。

在延迟较短的收集中,体量较小的离线数据将在引用买卖营业的瞬间传输完成。对付高负载利用,Ruby 支持跨越 1200 个链外项目时,维持每秒检索 30 MB 的链外数据收集连接,并且最大年夜 1000MB 的脱链数据都可以正常传输,不会影响 Ruby 收集效率。

数据模块可以设定其存储为通俗数据模块(仅可存储链内利用块)、利用数据模块、混杂数据模块,后两者可存储链外数据块的 HASH、宣布者、索引等信息,可以实现快速检索、分发链外数据块。

链内数据大年夜小单块限定为 16M,越过 16M 可以存为链外数据块(原则上 Ruby 容许无限大年夜的链外数据块,出于机能斟酌,不建议单个链外数据块跨越 1000M)。

5. 跨链协议(Cross-chain Asset Trading)

为支持数字资产跨链代价传输,Ruby 设计出跨链协议 CCAT(Cross-chain Asset Trading)。针对目标链上的每一种必要跨链传输的资产,在 Ruby 中均需发行一个与之对应的通证,作为目标资产在 Ruby 内部流畅的凭据,这种通证记为 TAT(Third-party Asset Token)。

6. 场景化智能合约

Ruby 场景化智能合约,我们称之为智能合约 2.0,给开拓者足够的自由度,开拓者可以选择应用自己认识的开拓说话,Ruby 供给与链进行互换的智能合约接口。

对外供给的与链交互的智能合约主要经由过程 JSON API 供给,所有的 API 都可作为与链进行数据交互的措施。

额外供给两个关键的措施,确保开拓者能够高效开拓 Dapp。这两个措施是:创建资产措施、创建数据模块措施。开拓者在开拓 Dapp 时可经由过程网站下载私有链开拓测试版进行开拓,也可申请响应资产和响应数据模块在测试链开拓,开拓完成后可移植到公链。

6.1 代币融资智能合约参考

主要目标:设置自动化的币币兑换,实今世币融资智能合约的底层技巧框架。

场景描述:创建一种待融资的资产(代币代码 FBC,最小单位 0.01,总量 10000000,融资额 5000000,兑换 500 RUB(系统中已存在的资产或原生泉币))

详细实现详见 Ruby 开拓者文档,盼望有兴趣的开拓者或组织与我们团结,基于此开拓代币融资 Dapp,Ruby 异常迎接将其纳入 Ruby 软件市廛。

6.2 版权保护智能合约

(1)创作历程,对称加密,写链;

(2)成品加密存储;

(3)1/n 多签分发。

6.3 游戏场景智能合约

以养猫为例

(1) 天生小猫

创建地址

天生对应数据模块:记录小猫特点

(2) 饲养小猫

币币买卖营业,历程记入数据模块

(3) 滋生后代

数据模块特点叠加计入新猫数据模块

6.4 RubyVM(Ruby Virtual Machine)

Ruby 借鉴了开源 QEMU 模拟处置惩罚器,QEMU 是一套由虚拟化天才法度榜样员法布里斯·贝拉(Fabrice Bellard)所编写的开源模拟处置惩罚器,在 GNU/Linux 平台上应用广泛。默认支持多种架构。可以模拟 IA-32 (x86)小我电脑,AMD 64 小我电脑,MIPS R4000, 升阳的SPARCsun3 与 PowerPC(PReP 及 Power Macintosh)架构,因为采纳 Ruby 虚拟机要领,Ruby 使现有利用迁移也变得异常方便,可以用最小的代码量实现现有利用的迁移。险些对所有现有利用供给迁移支持,同时 Ruby 将在适当机会完成开拓兼容以太坊虚拟机 EVM。

Ruby 在设计上采纳基于数据模块的底层 Ruby 虚拟机,使在平台上开拓变得异常简单,开拓职员无需改变现有编程说话习气和编程要领就可以在 Ruby 上完成区块链利用开拓。

7. Ruby TPS 提升

7.1 传统 POW 机制下的 TPS 无法提升的缘故原由

传统理论觉得 POW 无法做到大年夜幅度的 TPS 提升,着实不然,Ruby 觉得在 POW 机制下 TPS 无法大年夜幅度提升主如果由于以下几点:

· 所有的钱包买卖营业都保存在内存中。这样启动光阴会缩短,但内存应用量迅速增添;

· 因为采纳 UTXO 模型,许多操作对钱包中的每笔买卖营业履行效率低下的“周全扫描”,无论是旧的照样新的。

· 钱包中的每笔买卖营业都被完备存储,包括任何从节点的角度来看没故意义的随意率性“元数据”,虽然其已经存储在磁盘上的区块链中。其结果是,节点假如存储了 2 万笔买卖营业,钱包会变得异常迟钝。在 20 万笔阁下后,它实际上陷入逗留。

7.2 从比特币和以太坊看无法前进 TPS 的缘故原由

比特币节点不能前进 TPS 的主要缘故原由并不是由于 POW 共识机制(POW 从本色上说基础上都邑在成块光阴内完成共识),而是由于上文提到的三点缘故原由,虽然比特币收集可以轻松处置惩罚和存储数百万以致更大年夜与自己无关的事务,这些事务是在磁盘中而不是内存中进行的。但在详细到单一节点时,在处置惩罚跟自己有关的事务时,由于采纳 UTXO 模型,必要遍历整个区块文件,履行效率低下的“周全扫描”,来得到未花费的输出作为输入。而这些周全扫描包括内存中的买卖营业及元数据和区块文件都长短布局化的数据,检索速率会很低效,以是到单一节点,其 TPS 仅能达到 3 TPS。

以太坊节点的处置惩罚机制:以太坊在设计时斟酌到了 UTXO 模型的弊端,以是在设计上以就义靠得住性为价值,没有采纳 UTXO 模型,但其相关事务依然长短布局化数据,除此之外因为智能合约的设计是全局存在的,必要所有的节点去区块文件遍历履行,以是其 TPS虽然较比特币有所前进,但依然无法获得大年夜幅度提升,其 TPS 为 20-30 之间。

7.3 Ruby TPS 提升措施

Ruby 经由过程以下几种要领,使得 TPS 有了显明提升:

· 变内存驱动为数据库驱动,实现布局化存储和快速检索;

Ruby 核心钱包采纳本地双数据库的布局设计(双螺旋分子布局区块链),将本来节点单一数据库划分为区块数据库和钱包事务数据库。区块数据库采纳了 UTXO 模型的安然靠得住,同时结合了钱包事务数据库账户余额模型的机动高效。区块数据库仍旧存储整个区块数据,钱包事务数据库存储本地钱包地址相关的买卖营业和事务信息,而任何大年夜于 256 字节的买卖营业元数据都不会存储在钱包事务数据库中,而是在钱包事务数据库中包孕一个指向区块链本身的数据位置的指针,钱包买卖营业时经由过程指针或者索引直接查找区块数据库,可迅速定位相符特定标准的买卖营业,而不是履行完备的钱包扫描,可显明节省查询光阴并前进买卖营业速率。 

· 设计独占的数据模块,在包管机能的条件下,提升大年夜容量上链数据;

Ruby 数据模块容许区块链用作通用附加数据库,区块链供给光阴戳,公证和不变性。Ruby 可以包孕随意率性数量的数据模块,每个数据模块宣布的数据由每个节点存储,此中每一个数据模块都可以向所有人开放以供写入,或者只能从特定地址写入。假如一个节点选择订阅数据模块,它将在钱包事务数据库中为此数据模块建立内容索引,以便以各类要领进行高效的检索。

· 采纳 Ruby working 共识算法,作为帮助提升 TPS 的手段

Ruby working 共识算法在低落资本耗损的同时,加快了收集共识的杀青,更快的成块光阴以及更大年夜的区块容量都为 TPS 的提升供给了赞助。

综上,经由过程以上三种主要措施(别的还有自动归集未花费输出从而前进检索效率等措施),Ruby 能够做到在安然靠得住条件下,采纳 POW 机制和支持大年夜容量上链数据的环境下依然可以实现较高的 TPS。在中端设备单节点下,TPS 可以达到每秒 1080 笔,在高端设备连接的局域网或者借助部分中间化手段(如超级节点)的环境下可以支持每秒十万到百万笔的买卖营业速率。但在广域网情况下,受到带宽及其他收集身分影响,实际的 TPS 可能会有所下降。

8. 运行情况与开拓对象

8.1 运行情况

Ruby 已开拓完成广范支持当前主流的运行情况,包括但不限于 Windows、Linux、Mac、安卓、IOS 等各类家用、商用及工业运行情况。系统要求:

操作系统情况:

Mac:OS X 10.11+

Linux:64 位,Debian 7+,Ubuntu 14.04 +,CentOS 7 +,Fedora 20 +,RHEL 7+

Windows:64 位,Win7+

Andriod:7.0+

IOS:9.0+

硬件情况:

RAM:1G

Disk:2G

8.2 底层代码

Ruby 底层由 C++编写实现,敕令行对象由底层源码应用 gcc/g++直接编译天生,供给各版本敕令行对象,支持 Ruby 整个 RPC 敕令,包括 Windows、Linux、Mac 等多种版本。

8.3 钱包客户端

Ruby 的钱包客户端,支持基于 Ruby 的所稀有字资产,包括 Windows、Linux、Mac、Andriod、IOS 等多种版本。此中,适用于 Windows、Linux、Mac 的桌面级钱包利用采纳跨平台说话 java 开拓,应用 javafx 进行页面设计。Java 具有简单性、面向工具、散播式、壮实性、安然性、平台自力与可移植性、多线程、动态性等特征。java 的存储分配模型是它防御恶意代码的主要措施之一;Java 没有指针,以是法度榜样员不能获得隐蔽起来的黑幕和捏造指针去指向存储器。更紧张的是,Java 编译法度榜样不处置惩罚存储安排决策,以是法度榜样员不能经由过程查看声明去预测类的实际存储安排。编译的 Java 代码中的存储引用在运行时由 Java解释法度榜样抉择实际存储地址。基于以上 java 说话的特点,包管钱包客户端在各平台的安然及平稳运行。

8.5 Ruby 区块浏览器

Ruby 区块浏览器为 Ruby 原始币种及基于 Ruby 发行的各类资产供给区块、买卖营业查询、数据模块的数据查询以及原子买卖营业挂单查询。Ruby区块浏览器应用python结合bootstrap开拓,python 说话的面向工具、解释性、可扩展性、可嵌入性等特点,以及 python 自带的富厚的库,可以很好的赞助 Ruby 区块浏览器的优化及开拓,而 bootstrap 前端框架为Ruby 区块浏览器供给了方便简洁的页面效果。

8.6 其他 Dapp

Ruby 支持用户应用通用说话编写开拓 Dapp,开拓用户自己的场景化智能合约,Ruby供给标准的 RPC 办事接口和近 150 条 API 供开拓者应用。

9. 安然

51%算力进击:51%进击是指掌握了全网的 51%算力之后,用这些算力来从新谋略已经确认过的区块,使块链孕育发生分叉并且得到利益的行径。

对付存在的 51%算力进击,Ruby 经由过程 Rotation 事情轮换证实算法,再次低落 51%算力进击的可能性。因为 Rotation 事情轮换证实算法对付介入共识的节点分批次进行共识确认,使得 51%算力进击呈现的可能性大年夜大年夜低落,并且在呈现 51%算力进击时,因为 Rotation事情轮换证实算法对付共识节点的随机性,使得在 51%算力进击呈现后并不能不停保持51%算力进击,是以在被进击后等待几回确认后,可以回滚至原块链。

10. 办事层指令

10.1 CLI 调用

Ruby 供给如下常用 CLI 指令:

(1)节点基础操作指令

help 赞助

stop 竣事节点

pause 停息节点

resume 规复节点

emptymem 清除内存池

showmem 查看内存池

shownet 查看收集信息

showpeer 查看连接节点信息

showchain 查看区块信息

showblock 查看区块

showblocks 查看区块

showblockhash 查看区块哈希值

signmessage 消息署名

checkmessage 消息验证

(2)钱包基础操作指令

addnewaddr 增添一个通俗地址

addmultiaddr 增添一个多签地址

setupmulti 创建多签地址

setupkeypairs 创建地址对(不导入钱包)

showaddrs 显示地址及具体

dumpprivkey 导出私钥

importprivkey 导入私钥

importaddr 导入地址

backupwallet 备份钱包文件

dumpwallet 导出整个私钥到文本文件

importwallet 导入钱包文件

encryptwallet 加密钱包文件

changepass 变动钱包密码

walletpass 输入钱包密码

showassets 显示资产

showbal 显示 RUB

showaddrbals 列出特定地址的所有资产余额(含 RUB)

showallbals 列出此钱包(地址)所有资产余额信息(含 RUB)

showaddrdeal 显示特定地址的特定买卖营业信息

showaddrdeals 显示特定地址买卖营业信息

showwalletdeals 显示钱包买卖营业信息

send 发送 RUB 或资产

sendfrom 从特定地址发送 RUB 或资产

sendasset 发送资产

sendassetfrom 从特定地址发送资产

senddata 发送 RUB 或资产并附加数据信息

senddatafrom 从特定地址发送 RUB 或资产并附加数据信息

(3)创建发行数字资产 /数据模块指令(受限)

sell 发行数字资产

sellfrom 从特定地址发行数字资产

sellasset 追加发行数字资产

sellassetfrom 从特定地址追加发行数字资产

setupdatamod 创建数据模块

setupdatamodfrom 从特定地址创建数据模块

senditem 向数据模块宣布数据

senditemfrom 从特定地址向数据模块发送数据

showdatas 列出数据模块

order 订阅数据/资产模块

noorder 取消订阅数据/资产模块

showdataitem 显示单一数据条款

showdataitems 列出数据模块下数据条款

showdatakeys 列出某数据模块关键字

showdatakeyitems 列出某数据模块关键字的条款

showdatasenderitems 列出数据模块特定发送者的数据条款信息

showdatasenders 列出数据模块发送者信息

(4)币兑换及原子买卖营业(事务)指令

prelock 预先定输出

prelockfrom 从特定地址预先锁定输出

setuprawex 创建原子互换(币币兑换)

decoderawex 解码原子互换(币币兑换)

addrawex 附加原子互换(币币兑换)

completerawex 完成原子互换(币币兑换)

sendrawdeal 提交原子买卖营业至区块链

disrawdeal 取消特定原子买卖营业

gatherunspent 归集未花费输出

showunspent 显示未花费输出

showlock 显示锁定的未花费输出

lock 锁定(解锁)未花费输出

setuprawdeal 创建原子买卖营业(事务)

setuprawsendfrom 从特定地址创建原子买卖营业(事务)

decoderawdeal 解码原子买卖营业(事务)

addrawdeal 附加原子买卖营业(事务)

addrawchange 附加原子花费

addrawdata 附加原子数据

signrawdeal 签署原子买卖营业(事务)

10.2 JSON-RPC API 指令集

RPC 用 户 名 密 码 存 储 在 ~/.ruby/ruby/ruby.conf ( linux/MAC ) 或者 %APPDATA%\RUby\ruby/ruby.conf 文 件 中 , 可 以 使 用 rubyi 命 令 行 工 具 或 者RUbyTool 对象内置的 CLI 界面连接,这些对象会自动读取 RPC 用户名密码并连接已运行区块链。

您可能还会对下面的文章感兴趣: