全新Bitcoin客戶端上線

由gavin所創立的公司Parity在近日推出全新bitcoin客戶端: Parity - Bitcoin
繼Unlimited與Core後, 終於出現第三新選擇
望能在未來解決關於比特幣的種種問題

參考資料請見:
https://parity.io/press.html

客戶端下載(還未有圖像化界面):

Parity Bitcoin 是最近才完成,它是對 bitcoin 協定的軟體改寫,由英國 Parity Technology 公司完成。 Parity Bitcoin 乃以不同的語言(Rust 程式語言)將同樣的比特幣協定用Rust 語言重寫而成,所以執行上比較快。

Parity Bitcoin 是開源程式受大眾檢驗,它體現比特幣現有的協定,Parity 並没有表達主張支持 Bitcoin Unlimted 或 Segwit 的任何協定擴充或更改的立場,它忠於比特幣現有協定的 implementation,無關 Bitcoin Unlimited。

它是比特幣軟件發展者的多一個工具選擇,比如說,支持 Bitcoin Unlimited 協定者倒是可以要求要 pull / fork 它的程式碼,然後改成支持 Bitcoin Unlimited 的版本。

參考資料:


這個客戶端支持生成私鑰與地址嗎?
有人有否相關經驗可以分享?

它是全節點(full node),應該是有支持,只是它只有 command line 模式,没有 GUI。

如果你熟軟體操作,你可以下䵧試試它的 help,網上範例文件並不多。

https://github.com/paritytech/parity-bitcoin/

要連節點才能回傳地址, 還不是很懂

下面介紹如何安裝這個客戶端, 我是用iMac的
原文操作請參考https://github.com/paritytech/parity-bitcoin/ 的install guide

共需要安裝rustc與cargo兩個工具來啟用rust語言的parity-bitcoin客戶端, 共5個步驟
按照步驟將指令輸入終端機即可

筆者建議5步驟完成後, 另外安裝github desktop日後啟動客戶端比較方便(open in Terminal)


1.打開終端機(terminal), 可上google搜如何找到你的終端機

2.在終端機打上
curl -sSf https://static.rust-lang.org/rustup.sh | sh
來啟用rustc

(windows則是curl https://sh.rustup.rs -sSf | sh)

3.複製與建立pbtc客戶端

在終端機打上
git clone https://github.com/paritytech/parity-bitcoin
cd parity-bitcoin

以複製並建立客戶端資料夾

4.ptbc客戶端可使用2種模式建立, 分別為–debug與–release模式. 預設為debug模式.
請任選其中一種:

(1) debug
# builds pbtc in debug mode
cargo build -p pbtc

(2) release
# builds pbtc in release mode
cargo build -p pbtc --release

5.現在, 我們已可啟用ptbc客戶端, 依造你的模式選用以下指令(輸入到終端機中), 將從節點開始同步資料

(1)
./target/debug/pbtc

(2)
./target/release/pbtc

日後要運行客戶端的功能, 就是在終端機上面輸入相關指令(請見最下面)就可以了
“”“”注意客戶端同步的時候不能使用客戶端的任何功能哦!“”“”

若要顯示同步狀態到終端機, 請使用以下指令
./target/release/pbtc --print-to-console

節點資料請見
https://github.com/paritytech/parity-bitcoin/blob/master/pbtc/seednodes.rs

下面部分將介紹:

測試客戶端,
或使客戶端上線同步,
最後是幫助, 輸入指令使用客戶端各種相關功能

“”“”注意客戶端同步的時候不能使用客戶端的任何功能哦!“”“”

備註: 指令使用格式
./target/release/pbtc --要用的指令

./target/debug/pbtc --要用的指令

以下介紹客戶端測試方法
1.內部單元測試(你的電腦的內部測試)
./tools/test.sh

2.運行外部集成測試(將會聯網)
(1) regtests repo是一個自動啟用的測試模組, 將需要下載
git submodule update --init

(2) 啟動測試
./tools/regtests.sh

(3) 或者, 您可以使用手動測試; 依序使用如下指令
[1]
# let's start pbtc in regtest compatible mode
./target/release/pbtc --regtest

[2]
# now in second shell window
cd $HOME
git clone https://github.com/TheBlueMatt/test-scripts
cd test-scripts
java -jar pull-tests-f56eec3.jar

以下將介紹如何使客戶端上線同步
(筆者推薦選3, 否則看不到同步情況)

  1. 同步到主bitcoin網路
    ./target/release/pbtc

  2. 連上測試網路
    ./target/release/pbtc --testnet

  3. 輸出同步狀態到終端機, 請輸入
    ./target/release/pbtc --print-to-console

以下介紹如何將現有其他比特幣客戶端資料輸入ptbc客戶端.
“”"“重要! 筆者建議先將其他客戶端資料備份好再來嘗試”"""

1.找出$BITCOIND_DB資料庫路徑, 如"/Users/marek/Library/Application Support", 指令格式如下
./target/release/pbtc --print-to-console import “$BITCOIND_DB/Bitcoin/blocks”

# where $BITCOIND_DB is path to your bitcoind database eg. "/Users/marek/Library/Application Support"

./target/release/pbtc --print-to-console import "$BITCOIND_DB/Bitcoin/blocks"

2.預設將會驗證所有的blocks資料, 輸入如下指令格式來略過
./target/release/pbtc --print-to-console import "#BITCOIND_DB/Bitcoin/blocks" --skip-verification

最後是幫助, 輸入指令使用客戶端各種相關功能
輸入./target/release/pbtc --help來查看幫助選項

指令使用格式
./target/release/pbtc --要用的指令

./target/debug/pbtc --要用的指令

範例
./target/release/pbtc --help

pbtc 0.1.0
Parity Technologies admin@parity.io
Parity bitcoin client

USAGE:
pbtc [FLAGS] [OPTIONS] [SUBCOMMAND]

FLAGS:
-h, --help Prints help information 印出幫助選項
--no-jsonrpc Disable the JSON-RPC API server 關閉JSON-RPC API 伺服功能
--print-to-console Send sync info to console 印出同步情形到客戶端
--regtest Use private network for regtest 使用私有網路來測試模組
--testnet Use the test network 使用測試網路
-V, --version Prints version information 印出版本資訊

OPTIONS:
--blocknotify <command> Execute command when the best block changes (%s in cmd is replaced by block hash) 執行指令當最好的block變更時 (%s 在終端機中將被block hash取代)
-c, --connect <IP> Connect only to the specified node 只連接到特定節點(請搭配ip)
-d, --data-dir <PATH> Specify the database & configuration directory PATH 指定數據庫與目錄路徑
--db-cache <SIZE> Sets db cache size 設置db緩存大小
--jsonrpc-apis <APIS> Specify the APIs available through the JSONRPC interface. APIS is a comma-delimited list of API name. 設定特定的外部APIs與JSONRPC界面 可使用逗號隔開不同的API
--jsonrpc-cors <URL> Specify CORS header for JSON-RPC API responses
--jsonrpc-hosts <HOSTS> List of allowed Host header values 顯示允許的host header值
--jsonrpc-interface <INTERFACE> The hostname portion of the JSONRPC API server
--jsonrpc-port <PORT> The port portion of the JSONRPC API server
--only-net <NET> Only connect to nodes in network (ipv4 or ipv6) 只連接到該節點 (ipv4或ipv6格式)
--port <PORT> Listen for connections on PORT 監看連接到port的資訊
-s, --seednode <IP> Connect to a node to retrieve peer addresses, and disconnect 連接到節點確認點端口地址後斷開

SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
import Import blocks from bitcoin core database 置入bitcoin core的block資料

1個讚