1. 程式人生 > >區塊鏈開源專案Ripple一、簡單介紹與環境搭建,部署

區塊鏈開源專案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簡單介紹環境搭建部署

一、介紹: Ripple作為比特幣的2.0版,改進的方面有:1、無需挖礦 2、共識的改進,區分了普通節點和驗證節點(網路上的節點分為兩種:普通節點和驗證節點 普通節點只能轉發交易,信任驗證節點,參與投票。驗證節點可轉發交易,信任其它的驗證節點,決定投票)。 作為入門,官網的

區塊開源專案Ripple交易的完整生命週期

修改區塊鏈的唯一方法是提交交易,待交易通過共識後即可寫入區塊鏈,同時修改區塊,下面對整個交易的生命週期做詳細說明。 rippled底層提供了交易提交的API(詳細請參考https://ripple.com/build/rippleapi):submit 後面跟交易的已簽名B

區塊開源專案Ripple共識(1)

共識的概念最先由ripple提出,解決的數學問題模型是拜占庭將軍問題,這一節先介紹目前存在的共識機制及其優缺點。 1、Pow工作量證明,就是大家熟悉的挖礦,通過與或運算,計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的資料,全網其它節點驗證後一起儲存; 優點

區塊學習筆記()Ethereum-Go開發環境搭建

Ethereum是2.0版區塊鏈的主流應用,它將區塊鏈從電子貨幣(digital cash)中延伸出來,作為一個分散式資料庫使用,成為共識系統中的基礎支撐。Ethereum引入了“智慧合約”的概念,使得基於Ethereum的區塊鏈能夠構建多樣化的去中心化應

Django簡單介紹環境搭建

Django:MVC(model:主要封裝對資料庫層的訪問,對資料庫中的資料進行增刪改查操作。view:用於封裝結果,生成頁面展示的html內容。controller:用於接受請求請求,處理業務邏輯,與Model和View互動,返回結果)核心思想:解耦,讓不同的程式碼塊之間降低耦合,增強程式

訊息佇列-ActiveMQ學習筆記()-JMS介紹環境搭建

一、介紹JMS(來自於百度百科)        JMS即Java訊息服務(Java Message Service)應用程式介面,是一個Java平臺中關於面向訊息中介軟體(MOM)的API,用於在兩個

關於CAM區塊開源專案的資源整理

CAM區塊鏈是最近在github上看到的開源專案,因為是.net寫的,比較熟悉,方便通過看原始碼瞭解區塊鏈的執行原理。以下是github上的下載連結:總專案: https://github.com/camchain包含了該專案所開發的各個子專案,裡面的cam-server以及

區塊開源專案Asch原始碼初探

Asch這個名字是 App Side Chain 的縮寫。 是一種基於區塊鏈跨鏈技術的應用開發平臺,目前全部核心程式碼已經在GitHub上開源。 區塊鏈是比特幣的底層技術,但是名氣低於比特幣,但是個人認為潛力遠遠大於比特幣。是最值得技術人員關注的技術之一。 我一般研究一門新技術,傾向於研究更新更早期的

揭祕京東區塊開源專案——JD Chain

導言 近日,京東區塊鏈底層引擎JD Chain正式對外開源並同步上線開源社群,旨在為企業級使用者和開發者提供開源服務,幫助他們提

【Redis】簡單介紹及操作

一、什麼是Redis Redis 是一個高效能的開源的、C語言寫的Nosql(非關係型資料庫),資料儲存在記憶體中。 Redis 是以key-value形式儲存,和傳統的關係型資料庫不一樣。不一定遵循傳統資料庫的一些基本要求,比如說,不遵循sql標準,事務,表結構等等,非關係型資料庫嚴格

AWS考證方向:主機使用環境配置

技術分享 centos6 log 註冊 搭建 超級 例子 方向 aws 主機創建 1.註冊一個新的免費賬號網址:https://aws.amazon.com 2.在該賬號控制面板內,新購買一臺主機系統版本:centos6.8LNMP環境的標準:mysql = 5.6,PHP

區塊入門教程btcpool礦池源碼分析環境搭建

libco log utils mysq 啟動 oca ice shell edit # btcpool礦池-測試環境搭建及使用cgminer測試 本文檔基於Ubuntu 16.04 LTS, 64 Bits。 ![](http://i2.51cto.com/images

hyperledger fabric 基礎環境搭建

一、安裝環境:centos 7 二、docker 安裝 1、使用 root 許可權登入 Centos。確保 yum 包更新到最新。 sudo yum update 3、解除安裝舊版本(如果安裝過舊版本的話) yum remove docker docke

phalapi框架簡單介紹以及環境搭建

phalapi-入門篇 前言 先在這裡感謝phalapi框架創始人@dogstar,為我們提供了這樣一個優秀的開源框架. 筆者也是在進行介面開發時,尋找一個方便的針對與API開發的框架時,發現了這個框架,經過了短時間的嘗試,發現確實很便捷效率很高 後面就立即運用到了正式的專案上,而且在後

ElasticSearch()概念介紹環境搭建

一、什麼是ElasticSearch:   Elasticsearch (ES)是一個基於Lucene構建的開源、分散式、RESTful 介面全文搜尋引擎。Elasticsearch 還是一個分散式文件資料庫,其中每個欄位均是被索引的資料且可被搜尋,它能夠擴充套件至數以百計的伺服器儲存以及處理PB級的資料。

Spring Cloud介紹環境搭建()

前言使用Spring Cloud需要用到Spring boot的知識,如果沒有相關經驗,請參考Spring Boot的簡單使用(二),做一個簡單的入門。Spring Cloud系列部落格是基於MyEclipse開發工具的。LAMP專案傳統的單體專案用一個LAMP結構就可以完成

zookeeper從入門到精通特性瞭解環境搭建安裝

目錄 分散式協調服務-zookeeper 一、分散式環境的特點 (1)、分佈性 (2)、併發性:程式執行過程中,併發性操作是很常見的。比如同一個分散式系統中的多個節點,同時訪問一個共享資源。 資料庫、分散式儲存。 (3)、無序性:程

RabbitMQ學習筆記:基本概念環境搭建

一、定義     MQ(Message Queue,訊息佇列)是基於應用程式之間的一種通訊方式,應用程式通過讀寫出入佇列的訊息進行通訊,而不需要用專用的連線來連線它們。訊息通訊指的是程式之間在訊息中傳遞資訊進行通訊,而不是傳統的通過直接呼叫(如RPC)的方式進行通訊。MQ的

Flask框架():介紹環境搭建

1.Flask介紹 Flask誕生於2010年,是Armin ronacher(人名)用 Python 語言基於 Werkzeug 工具箱編寫的輕量級Web開發框架。   Flask 本身相當於一個核心,其他幾乎所有的功能都要用到擴充套件(郵件擴充套件Flask-Mail,使用者認證Flask-Lo

LikeLib是基於區塊3.0的種新思想治理新思維

歷經千萬年,從荒古時代走來的人類,為什麼從社會中孕育出國家這樣的“中心化”權威,它又有何用處? 為了秩序,為了能夠讓大多數人活得安穩、活得像個人的秩序!否則,充滿智慧的老祖先們不會笨到把自己的權利交由國家來把持、裁決的。 沒有由軍隊、警察、監獄等暴力支撐起來的權威“中心”,人類社會將陷