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