当前位置: 首页> 67系统

白话区块链技术第6讲|分布式系统与区块链

发布时间:20-05-24

点击蓝字关注我们

欢迎来到《王毅白◄话区块链技术》专栏第六讲:认识Ripple网络。

01

概述

Ripple网络是什么?与其它区块链网络有什么不同?在ripple网络上我们能做什么?

Ri▬ppl∝e网络是ripple.lab做出来的一个区块链生态系统,一些关于ripple的来源,ripple的演化历史,现在网上也容易查到它的ぷ详细资料,在这里就不再赘述。

我们在这里直接讲技术人员关心的内部技术方案及实现原理,今天我们会从宏观上去探究ripple网络,了解网络包含哪些模块,提供了什么样的功能,我们ㄨ应该怎么去使用。

下图是瑞波网络的架构图,其主体是分为两部分的,其一是做为节点程序的ripple核心程序,其二是访问ripple数据的API接口程序。

02

如何在ripple上交易

Ripple的接口程序中又分为两部分:

其一,直接访问节点程序,与节点程序直接交互的API,这些API连接的目标地址应该是某个ripple节点的IP地址,这些API调用后会直接改变ripple网络的状态,比如转账、属性设置等交易操作。另外一些API只是提供查询操作,比如当前区块高度、交易详情等,ripple的这套API我们直接称之为ripple API;

其二,访问ripple数据库,像大多数区块链网络一样,我们在访问数据的时候并不是直接在节点上查找,而是∟查找已经统计到本地数据库中的数据,这样才能提高查询速度,并实现统计分析。Ripple进行数据统计分析时所使用的是分布式数据库hbase, 同时在hbase前放置一个server,用来连接rippl╬e网络与hbase数据库、同时提供用户的API接口。Ripple访问这个hbase server这套API我们称之为V2接口。

2.1.基础接口

&

Ripple Api提供了多种访问形式:

公众号微信群

从连接方式上来划分:

1>通过〾http连接的形式访问,我们称之为RPC访问模式。

2>通过webSocket连接来访问,我们称之为WS访问模式。

3>通过直接在节点程序输入命令来执行,我们称之为CommandLine访问模式。

以上各种访问方式中,提供的参数均为json形式,∈即将ripple需要的数据封装成json数据,打包发给ripple节点。

在WS访问模式下,ripple为了方便用户使用,又对json参数进行了进一步的封装,形成了一套独立的API接口,每一个API接口都有一定的规范,只要写入固定的几人简单参数即可,但是对于交易本身来讲,还是json格式,只是辅助参数,签名之类的活,API就都给做了,使用起来相当方便。WS接口的API提供了两种语言支持,一种是javascript,另外一种是java,很遗憾没有其它语言支持了,因此想要开发iphone手机客户端的朋友稍微有点麻烦。

2.2.V2接口

Ripple的V2接口是用来访问一个统计数据库用的,访问方式为http连接。Ripple在这里所使用的是hⅢbase数据库,Ripple会启动一个服务程序,订阅从ripple某个节点程序发来的区块数据,将区块数据进行分析,然后写入hbase,这些数据包括区块高度,交易详情、账户统计、货币交易详情等。通过这个接口,可以快速查询到相关的数据,因为是直接从数据库里读数据,而不像ripple api那样是访问ripple节点,虽然说节点程序也是读本地的数据库去查询,但是hbase对信息已经做了更为精细的处理,查询速度会更快。

03

XRP

XRP是ripple网络所使用的token,ripple网络采用的是账户余额模式,在网络初始化的时候会给一个固定账户分配10≤00亿的XRP,初始账户生成时所用的种子是:masterpassphrase,这个账户就是ripple公司控ⓛ制的实际账户,因为代码是开源的,因此我们都能看到这个账户下的资产,但我们在ripple网络上去查这个账户下的资产,余额却是很少的,因为在网络建立之初,XRP已经被转移到另外一个账户下去了,有兴趣的同学可以跟踪一下具体交易详情,就能明白这1000亿的去向。

对于XRP这个基础币种,ripple网络还提供了一个⺌托管交易的功能,简单来讲就是将XRP在约定的时刻转给某人,在☞这段时间里不能取消这个托管交易。这就很有用了,还记得2017年末XRP价格从1.6元疯涨到3元多的时候吗?就是因为ripple公司用这种escrow交易将自己的550亿XRP进行了锁仓,公司共建了55个escrow交易,每个交易合约里面有10亿XRP,各个合约会设定分别在1个月后,二个月后,,54个月后将XRP转给ripple公司控制的另外一个账户。这种对本币的锁定是ripple独有的,但与以太坊正好相反,ripple๑网络不能对依赖于其网络而生的、用户自定义的币种进行这种escrow交易⊥。

04

其它重要功能

4.1.网关

Ripple是为金融而生的,已经有很多国家的大银行与其合作,其技术基础在于:在ripple网络上,任何人可以在任意时刻发行自己的货币,从而成为这种货币的网关。但在ripple网络上,不是说一个账户可以主动设置自己成为一个网关,而是用户驱动模式,即用户对某个账户进行了trustLine交易操作急速赛车微信群 ,这个账户才是实际意义上的网关。因此网关是与用户相关的,是要得到用户承认的,先有用户再有网关,而不是先有网关,再有用户,用户才是网关存在的基础。

如果了解№bitShare的同学,应该对网关这个概念不会陌生。做一个网关容易,但是做一个让人信任的网关是很难的,网关要承担将现实世界货币与ripple网络虚拟货币之间桥梁纽带的责任。由于分布式网络的特性,ripple公司也无法约束网关的行为。

4.2.交易所

网关◎可以发行自己的货币,那各个货币之间是否可以转换?不用担心,ripple已经提供了这样的功能,可以在网络上交易不同网关发行的货币,比如CNY,BTC等,因此ripple网络本身也是一个去中心化的交易所,当然成交速度会受制于ripple网络的共识速度。交易手续费也是网关自己来决定的,所ↁ以成为网关是有一定的好处的,我们境内有两个大的CNY网关,一个是瑞狐,另外一个是rippleChina。在ripple网的交易所内,有各大网关会发行的一些主要国家的代币,也有BTC, ETH等主流数字货币,我们可以微信群 在这个内部的交易所自由进行交易。我们称ripple的这个交易所为内盘,相对应的,๑ิ.ั๑ri*pple网络外部的其它交易所,我们称之为外盘。利用ripple内外盘各货币的价差是可以进行套利的呢,有兴趣的同学可以研究一下。

4.3.多方签名

Ripple网络还提供了多方签名的功能,即一笔交易的确认需要多个用户来签名。这里我们可以自己比较一下BTC的多方签名实现,BTC中是通过脚本的复杂操作来实现,而ripple的三方签名设计成了交易类型的一种,大大方便了用户的使用。

再说到ripple的共识算法,ripple提出了自己的独立的共识算法RPCA,这种算法区别于现有的POW, POS, DPOS算法,是由分成一个小组、一个小组的节点来共同决定区块上要记录哪些交易,即在交易记录到区块之前,大部分节点就已经对区块内容达成共识了。这个我们会有后面的文章中详细介绍。共识算法的特性自然就决定了共识的速度,对于ripple来说,生成一个区块的时间是2到9秒,即使没有交易,网络也会生成一个空区块,所以你会发现ripple网络的区块高度增加的很快。区块生成速度快,交易确认的速度就快,ripple的交易速度与bitShare的交易速度不相上下的,要知道bitShare用的可是DPOS共识机制呀。

今天先简单介绍ripple的基础知识,ripple提供的每一种功能都是通过交易的形式提供给用户使用,我们会逐渐认识到这个区块链网络的魅力。Peersafe(众享比特)公司就被ripple网络的特性打动,基于ripple开发出了自己的区块链产品chainSQL,将ripple与数据库相结合,对数据库的操作就不可以更改,很好地将传统项目与区块链结合起来,大家有兴趣也可以自行去了解。

期待下期再会~

往期课程

白话区块链技术 第1讲|非对称❤加密

白话区块链技术 第2讲|非对称加密

白话区块链技术 第3讲|账户

白话区块链技术 第4讲|钱包

白话区块链技术 第5讲|分布式系统与区块链

♯♮

延伸阅读

比特币白皮书经典解读|第1讲

比特币的运行原理(上)|第2讲

比特币的运行原理(下)|第3讲

*

比特币的交易|第4讲

什么是区块链|第5讲

区块链技术(上)|第6讲

区块链技Ⅶ术(中)|第7讲

  

本期作者|王 毅

本期编辑|靳亚峰

祝你晚安早安午安心安

你可以上哪儿找我?

|欢迎转发到朋友圈|

王毅

赞赏

打开APP,阅读更多内容

function dalaoNameEvt(){ var dalaoName = $("#dalaoName"); var dalaoNameHtml = dalaoName.html(); if(dalaoNameHtml!="┕un♨defined" && dalaoNameHtml != undefin┆┇ed && dalaoName♤Html.length > 6){ dalaoName.html(dalaoNameHtml.substr(0,6)+'…'); } } dalaoNameEvt();