安裝
就位
cd /usr/local/
安裝依賴
yum install -y wgetyum install -y autoconfyum install -y automakeyum install -y libtoolyum install -y gcc gcc-c++ gcc-g77yum install -y openssl-devel yum install -y boost-develyum install -y libevent-devel
資料庫和錢包版本是有一定的搭配的,我這里用的是0.17.1配4.8.30,如果你要用其他版本,有可能需要折騰一下,
下載解壓 berkeley-db安裝包(這是我存盤的云端檔案)
wget http://file.fengyumeng.com/db-4.8.30.tar.gztar -zxvf db-4.8.30.tar.gz
如果你需要其他版本的話可以到這里去找:
https://www.oracle.com/database/technologies/related/berkeleydb-release-history.html
切目錄
cd db-4.8.30/build_unix/
配置
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=/usr/local
安裝
make install
回到local目錄
cd ../../
下載bitcoin
wget http://file.fengyumeng.com/bitcoin-0.17.1.tar.gz
如果你身體好,能翻墻,就去github下載你想要的版本:https://github.com/bitcoin/bitcoin/releases
解壓
tar -zxvf bitcoin-0.17.1.tar.gz
切入目錄
cd ./bitcoin-0.17.1/
生成組態檔
./autogen.sh
進行配置
./configure
編譯
make
安裝
make install
查找是否安裝成功
which bitcoindwhich bitcoin-cli
啟動
創建一個目錄存放區塊資料
mkdir /bitcoin
跳過去
cd /bitcoin/
創建組態檔
vim bitcoin.conf
如下配置內容,自己看著改
#測驗網路(不配置就默認是主網)testnet=1# 啟動rpc服務server=1# rpc賬號密碼rpcuser=abcrpcpassword=123456#rpc白名單 rpcallowip=0.0.0.0/0# 接受rest請求rest=1# 所有交易進行索引 否則只保留錢包地址交易索引記錄txindex=1# 交易確認區塊數 默認是6txconfirmtarget=3# 資料存盤位置 默認是家目錄下的.bitcoin目錄datadir=/bitcoin# 塊資料存盤位置 默認家目錄下的.bitcoin/blocks 必須先創建該目錄blocksdir=/bitcoin/blocks
更多配置,可以去這里找
https://jlopp.github.io/bitcoin-core-config-generator
啟動命令
bitcoind -conf=/bitcoin/bitcoin.conf -rpcport=9999 -daemon-rpcport是rpc埠(默認的rpc埠是18443,如果你在組態檔里配埠的話 只有主網才會生效)
-daemon是守護行程
呼叫rpc介面看看通不通
curl --user abc:123456 --data-binary '{"jsonrpc":"1.0","id":"curltest","method":"getwalletinfo","params":[]}' -H 'content-type:text/plain' http://127.0.0.1:9999
看到如下資訊證明是OK的 你已經可以找到balance等字樣了

停止命令 (帶上你啟動時的引數一起)
bitcoin-cli -conf=/bitcoin/bitcoin.conf -rpcport=9999 stop
如果再次啟動的時候出現例外,就手動洗掉.lock檔案
rm -rf /bitcoin/testnet3/.lock
使用
區塊資訊
查看區塊資訊
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 getblockchaininfo
獲取區塊高度
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 getblockcount
查看挖礦資訊
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 getmininginfo
賬戶地址
列出所有錢包
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 listwallets
默認會有一個空錢包的
生成錢包
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 createwallet wallt1
你可以生成很多錢包
生成地址
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 getnewaddress a_label_1
getnewaddress 后面跟的是 標簽名 以官方的話說是個label 相當于分類名
這是在wallt1錢包下面生成一個地址,一個客戶端可以有很多個錢包,每個錢包可以有很多個地址,多個地址可以設定成同一個label,相當于一個房間里可以有多個衣柜,每個衣柜有很多個格子,我把很多雙襪子放同一個格子方便管理,
列印在控制臺的就是生成的地址

顯示地址的私鑰
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 dumpprivkey 2N33hCn1fSwZATgmAD55cetomi9MWB4V5xM
查看錢包下所有的label
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 listlabels
查看label下所有的地址
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 getaddressesbylabel a_label_1
錢包余額
獲取測驗位元幣
地址:https://coinfaucet.eu/en/btc-testnet/
獲取了之后,可以去測驗網路瀏覽器查:https://live.blockcypher.com
也可以直接打開這個鏈接(把后面的地址換成你要查詢的地址):https://live.blockcypher.com/btc-testnet/address/2N33hCn1fSwZATgmAD55cetomi9MWB4V5xM/
當然,你要等區塊確認之后錢才會變成可用的,
有一點需要注意一下,測驗網路目前的區塊高度是160多萬,查一下你本地的區塊高度同步了多少,如果區塊沒同步足夠,在本地是查不到交易的,
查詢錢包資訊
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 getwalletinfo
balance:錢包中以 BTC 為單位已確認的總余額
unconfirmed_balance:錢包中以 BTC 為單位未確認的總余額
immature_balance:錢包中以 BTC 為單位未成熟的總余額
查詢錢包余額
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 getbalance
查詢地址余額
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 getreceivedbyaddress -rpcwallet=wallt1 2N33hCn1fSwZATgmAD55cetomi9MWB4V5xM 3
指定地址至少N個確認交易的金額,不填數字則默認1個
根據標簽查余額
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 getreceivedbylabel a_label_1
后面同樣可以跟個數字 默認為1個確認的余額
遍歷地址余額資訊
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 listreceivedbyaddress 1 true
交易
查詢錢包接收到的交易
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 listtransactions
根據hash查交易(錢包內交易)
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 gettransaction 3c1dcdccd6373134a183cd4df93e59a40b1b395fde55b7c0f9ca0eed04f4965f
根據hash查交易(交易池交易)
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 getrawtransaction 3c1dcdccd6373134a183cd4df93e59a40b1b395fde55b7c0f9ca0eed04f4965f true
轉賬
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=wallt1 sendtoaddress 2N8W4G3H1aTxJvkS8rdbj4e4yzeMeDCVB5y 0.01
位元幣每一次轉賬轉出的都是整個錢包的所有可用余額,其中指定的金額去往目標地址,剩余的金額回到自己錢包,這是找零的概念,建議不了解的同學啃一下UXTO模型,
加密解鎖
錢包加密
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=a1 encryptwallet abcdefg
encryptwallet后面跟的就是你的保險箱密碼,一旦加密, 每次進行轉賬時都需要先進行錢包解鎖,
(加密成功后bitcoin行程會關閉,需要重新啟動,建議區塊同步完了再進行錢包加密,否則加密后重啟錢包,可能會發現原來的錢包資料丟失了)
錢包解鎖
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=a1 walletpassphrase abcdefg 10
解鎖時間以秒為單位,到點之后錢包自動上鎖,如果在解鎖時間未到之前想要上鎖就需要手動呼叫下面的鎖定錢包介面
鎖定錢包
bitcoin-cli -rpcuser=abc -rpcpassword=123456 -rpcport=9999 -rpcwallet=a1 walletlock
API呼叫
RPC介面一覽表:https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
位元幣PHP的SDK:https://github.com/blockchain/api-v1-client-php
位元幣JAVA的SDK:https://github.com/blockchain/api-v1-client-java
位元幣Python的SDK:https://github.com/blockchain/api-v1-client-python
位元幣NodeJs的SDK:https://github.com/blockchain/api-v1-client-node
第三方API:https://www.blockcypher.com/dev/bitcoin/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/5272.html
標籤:區塊鏈
