区块链开源项目Ripple一、简单介绍与环境搭建,部署

一、介绍:

Ripple作为比特币的2.0版,改进的方面有:1、无需挖矿 2、共识的改进,区分了普通节点和验证节点(网络上的节点分为两种:普通节点和验证节点

普通节点只能转发交易,信任验证节点,参与投票。验证节点可转发交易,信任其它的验证节点,决定投票)。

作为入门,官网的资料很是全面,从Ripple小白开始,一步步说共识,数据结构等等。但是考虑到很多人看英文文档一头雾水,且文档没有对照代码等问题,

本文作为一个系列的开篇,试图以国内程序员通俗易懂的方式介绍Ripple,并对照相关代码,使开发人员能立即上手调试操作。

首先附上官网的链接https://ripple.com/build/,笔者在开发中,常以这个链接为资料参考,最右侧一栏是ONLINE TOOLS,提供了几种测试工具。

二、环境搭建:

推荐使用Ubunu 14.0以上,WINDOWS64位亦可(32位目前不支持,笔者曾和官方核对,官方给出的答复原文“it's impossible to run a validator on a Raspberry Pi”),笔者就用windows64开发调试,编译部署环境为Ubunu。代码仓库地址:https://github.com/ripple/rippled,(GitHUB上还有相关的工程,ripple-lib/ripple-client-desktop(还有个REST,不过现在不维护这个工程了,也没啥用),前者是nodejs的库,使用ws和底层rippled通信,后者是使用前者的一个客户端,后面再介绍).

windows编译:使用工程目录下Builds\VisualStudio2015编译即可(先安装BOOST1.59和google的proto,具体参考链接https://wiki.ripple.com/Visual_Studio_2013_Build_Instructions)

Ubuntu编译:执行工程下的Builds\Ubuntu目录下的依赖脚本,也可自己wget手动下载安装,参考链接:https://wiki.ripple.com/Ubuntu_build_instructions,

编译是通过SCONS脚本,默认编译出的可执行文件比较大(200多M),可以编辑脚本,查找“-g”,将其注释,这样编译出的可执行程序只有25M左右。

三、网络部署:  

建议配置最少两个验证节点。为了网络的安全性,验证节点可以配置为4-8个。

1.普通节点设置方法:

在配置文件peersafe.cfg中添加信任验证节点的public key。

[validators]

n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7

n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj

n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS

2.验证节点设置方法:

(1).从本地运行节点中获取随机的validationseed and its associated public key。

# peersafed -q validation create

{

  "status" : "success",

  "validation_key" : "TUCK NUDE CORD BERN LARD COCKENDS ETC GLUM GALE CASK KEG",

  "validation_public_key" :"n9KHn8NfbBsZV5q8bLfS72XyGqwFt5mgoPbcTV4c6qKiuPTAtXYk",

   "validation_seed" :"ssdecohJMDPFuUPDkmG1w4objZyp4"

}

(2).添加validation seed and its associated public key到本地节点的配置文件中。

# [validation_seed]:

#   To performvalidation, this section should contain either a validation seed or key.

#   The validationseed is used to generate the validation public/private key pair.

#   To obtain avalidation seed, use the validation_create command.

#

#   Examples:  RASH BUSH MILK LOOK BAD BRIM AVID GAFF BAITROT POD LOVE

#             shfArahZT9Q9ckTf3s1psJ7C7qzVN

[validation_seed]

ssdecohJMDPFuUPDkmG1w4objZyp4

[validation_public_key]

n9KHn8NfbBsZV5q8bLfS72XyGqwFt5mgoPbcTV4c6qKiuPTAtXYk

(3).添加信任其它的验证节点

在配置文件peersafe.cfg中添加信任其它验证节点的public key。

[validators]

n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7

n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj

n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS 

3.配置文件修改

 从doc目录下拷贝rippled-example.cfg,改名为rippled.cfg,按照如下方式修改:

           修改[port_rpc_admin_local]中的IP为0.0.0.0,意为接收来自任意IP的HTTP连接。

           修改[port_peer]中的IP为0.0.0.0,意为接收来自任意IP的peer连接。

           修改[port_ws_admin_local]中的IP为本机IP

           修改[ledger_history],指定本节点是否为保存全部历史,如果是,则修改为full,默认为256,意为保存最近256个区块。

           修改[ips],填入连接的对端IP地址和端口号。端口号参见连接节点的配置文件中[port_peer]中的端口。

           修改[validators],填写信任节点的publickey。

           修改[validation_quorum],填入数量,一般为小于信任节点数量的值。如[validators]中信任节点为3,这里填写2.(这个涉及到共识,后面详细说明)

           修改[rpc_startup]中的日志级别,这里记录本地程序运行产生的日志级别。

              修改[ssl_verify],内部使用一般填写0.

其他参数后面用到时再详细说明。

构建网络时,需要考虑哪一个设置为主节点和从节点。无论主从节点,均需在其后指定配置文件(如果和可执行程序在同一目录,那么可以不用指定),对于从节点,还需加参数--start.

在程序的可执行目录下,执行server_info命令查看,当出现"complete_ledgers:1-200" 字样时 ,说明同步完成。

猜你喜欢

转载自blog.csdn.net/u011386109/article/details/53262000