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

2024-06-06 18:38

本文主要是介绍区块链开源项目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" 字样时 ,说明同步完成。

这篇关于区块链开源项目Ripple一、简单介绍与环境搭建,部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1036909

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu2289(简单二分)

虽说是简单二分,但是我还是wa死了  题意:已知圆台的体积,求高度 首先要知道圆台体积怎么求:设上下底的半径分别为r1,r2,高为h,V = PI*(r1*r1+r1*r2+r2*r2)*h/3 然后以h进行二分 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#includ

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

usaco 1.3 Prime Cryptarithm(简单哈希表暴搜剪枝)

思路: 1. 用一个 hash[ ] 数组存放输入的数字,令 hash[ tmp ]=1 。 2. 一个自定义函数 check( ) ,检查各位是否为输入的数字。 3. 暴搜。第一行数从 100到999,第二行数从 10到99。 4. 剪枝。 代码: /*ID: who jayLANG: C++TASK: crypt1*/#include<stdio.h>bool h