Page tree
Skip to end of metadata
Go to start of metadata

ripple共分三部分

  • rippled ripple的基础p2p网络,用于确保网络一致性,语言c++
  • ripple-rest 将rippled的协议转为restful的协议对外提供
  • gatewayd 基础的gateway代码,用于架设gateway以及二次定制

rippled

编译

Mac

先安装homebrew,

安装依赖项,

brew install boost openssl protobuf scons pkg-config

命令行编译命令为

scons build/rippled

xcode需要将共享目录里的工程文件 rippled.xcodeproj 复制到 Builds/XCode/ 下,打开然后点击编译即可

<fc #ff0000>新的rippled已经fix下面这一段了,可以不用了</fc>

-10.10版本的osx需要patch一下 src/beast/site_scons/Beast.py,改动如下

diff --git a/src/beast/site_scons/Beast.py b/src/beast/site_scons/Beast.py
index 416fca6..4e2f820 100644
--- a/src/beast/site_scons/Beast.py
+++ b/src/beast/site_scons/Beast.py
@@ -59,7 +59,8 @@ class __System(object):
             self.__display = '%s %s (%s)' % (self.distro, self.version, self.name)
  
         elif self.osx:
-            ten, major, minor = platform.mac_ver()[0].split('.')
+            ten, major = platform.mac_ver()[0].split('.')
+            minor = 0
             self.__display = '%s %s.%s.%s' % (self.name, ten, major, minor)
  
         elif self.windows:

-

为了找到boost,还需要patch一下SConstruct

diff --git a/SConstruct b/SConstruct
index f3bbb34..e7425ba 100644
--- a/SConstruct
+++ b/SConstruct
@@ -481,6 +481,7 @@ base = Environment(
     TARGET_ARCH='x86_64')
 import_environ(base)
 config_base(base)
+base.MergeFlags('-I/usr/local/include -L/usr/local/lib')
 base.Append(CPPPATH=[
     'src',
     os.path.join('src', 'beast'),

然后 scons 编译即可

Linux

ripple原文帮助:https://wiki.ripple.com/Rippled_build_instructions

安装依赖

需要安装boost ssl开发库、protobuf、pkg-config,其中boost依赖较多且需要为1.54以上版本

deb系命令用

sudo apt-get update
sudo apt-get install git libboost1.55-all-dev libssl-dev libprotobuf-dev protobuf-compiler pkg-config -y

centos目前只在7上成功,用

取最新ripple代码

代码用release分支,为最后一个发布版本,命令为

git clone https://github.com/ripple/rippled.git
git checkout release

编译

编译需要使用scons工具 安装命令

deb系:

sudo apt-get install scons

centos系:

ubuntu用 scons 编译rippled

centos用命令 BOOST_ROOT=/opt/boost_1_56_0 scons 编译

查询

到这里已经编译出了一个ripple执行文件,再经过配置就可以启动一个自己的节点,当然,也可以直接连接网络上现有的节点查询信息发布交易了,命令为

build/rippled --rpc_ip s_east.ripple.com --rpc_port 51234 server_info

配置节点

找一个目录,以/opt/ripple/public为例,进去,把之前编译好的rippled拷贝过来,命令

cp /opt/src_to_ripple/build/rippled ./

然后下载示例配置文件然后进行修改,或者直接用这个文件然后跳过本节直接看运行节点

如果你想自己改示例文件,方法如下

先下载示例配置

把下载下来的文件重命名为rippled.cfg,命令

mv rippled-example.cfg rippled.cfg

修改rippled.cfg,主要是三个目录需要修改成可写目录,分别是

...
[node_db]
...
path=/opt/ripple/public/db/rocksdb
...
[database_path]
/opt/ripple/public/db
...
[debug_logfile]
/opt/ripple/public/debug.log
...

运行节点

命令 ./rippled --net 是启动一个rippled节点,可以放在screen里执行

命令 ./rippled server_info 查看当前节点状态

ripple-rest

还没搞定

代码在

gatewayd

安装npm,deb系命令

curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install npm

下代码,命令

安装一堆需要安装到系统的依赖库

sudo npm install --global pg grunt grunt-cli forever db-migrate jshint

安装pm2,用于后台跑node服务,如果只是测试也可以不装

sudo npm install pm2 -g --unsafe-perm

安装其他依赖库

npm install

设置数据库

sudo apt-get install postgresql postgresql-client
sudo -u postgres psql -c "create user gatewayd_user with password 'password'"
sudo -u postgres psql -c "create database gatewayd_db with owner gatewayd_user encoding='utf8'"

修改配置文件

cp config/config config/config.json
vi config/config.json

其中,{{RIPPLE_REST_API}}是对应的ripple-rest地址,因为之前的ripple-rest配置不起来,这里设置用api.ripple.com;DATABASE是数据库地址

更新数据库,命令

grunt migrate

可用命令

  • bin/gateway generate_wallet 本地生成一个钱包地址
  • bin/gateway set_cold_wallet 设置网关冷钱包
  • bin/gateway set_hot_wallet 设置网关热钱包

如果想启动服务,需要装pm2,命令

bin/gateway start

代码结构

  • bin/gateway 命令行代码
  • lib/ gateway 内部库代码
  • processes gateway服务入口代码
  • index.js 所有gateway代码的基本依赖
  • No labels