您好,登錄后才能下訂單哦!
這篇文章主要介紹了Bitcoin Core錢包如何安裝與對接,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
比特幣(Bitcoin)的概念最初由中本聰在2008年11月1日提出,并于2009年1月3日正式誕生。根據中本聰的思路設計發布的開源軟件以及建構其上的P2P網絡。比特幣是一種P2P形式的虛擬的加密數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。與所有的貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定算法,通過大量的計算產生,比特幣經濟使用整個P2P網絡中眾多節點構成的分布式數據庫來確認并記錄所有的交易行為,并使用密碼學的設計來確保貨幣流通各個環節安全性。P2P的去中心化特性與算法本身可以確保無法通過大量制造比特幣來人為操控幣值。基于密碼學的設計可以使比特幣只能被真實的擁有者轉移或支付。這同樣確保了貨幣所有權與流通交易的匿名性。比特幣與其他虛擬貨幣最大的不同,是其總數量非常有限,具有極強的稀缺性。 bitcoin百度百科 bitcoin維基百科
目前網絡上有很多社區開發了多款bitcoin錢包,其中bitcoin core錢包安裝后會下載全部節點,并且有一套rpc接口協議,代碼在github也全部開源,bitcoin core支持多個操作系統,我們可以根據自己需要進行安裝。我做過的項目需求都是交易系統和支付系統實現充值,提現,和歸集功能,bitcoin core對我來說足夠了,所以就選擇他了。至于其他錢包我就沒有具體深入研究了,如果有特殊需求的業務,也可以去研究下其他錢包是否支持。 想研究其他錢包可點擊鏈接進行查看:bitcoin維基百科
因為虛擬幣價值比較高,所以有很多黑客會想盡各種辦法盜取虛擬幣資產,像一線交易所也都被盜過,目前最簡單和成本最低的防范方法就是做冷熱錢包隔離,我們在設計系統的時候也應該考慮此方面的解決方案,然后在這個思路上面延伸。我的解決方案是用戶充值進錢包的虛擬幣,我每天會通過定時任務把熱錢包的虛擬幣轉到冷錢包。這樣的話黑客就算黑了我們錢包,他能盜走的幣也很少,可以減少平臺的損失。
熱錢包,我們現在搭建的就屬于熱錢包,簡單來講就是與外界聯網的錢包,充值地址的幣,每天都會劃轉到冷錢包
冷錢包,與外界網絡完全隔離,目前市面上也有很多相關的硬件錢包產品
區塊鏈的機制就是一但生成交易就無法篡改和撤回了,我們在開發的時候也要多注意,特別是在轉幣的時候
utxo,官方解釋是未經使用的交易輸出,具體介紹可以點擊看其他大哥寫的詳細介紹,utxo介紹
我目前用的服務器配置是aws ubuntu 2c,8g,500g硬盤,下面的配置信息是我給的建議
cpu:2c(同步區塊的時候會占用cpu)
內存:8G
硬盤:500G(不差錢上固態,固態同步區塊速度會快很多)
區塊同步時cpu會懟滿,所以你們到時候不要大驚小怪了,這是正常的,等區塊同步完成后就會恢復正常
安裝也有多種方法,可以在上面地址下載安裝文件也行,這里我是直接通過ubuntu的apt下載安裝 首先需要添加bitcoin的源:
sudo add-apt-repository ppa:bitcoin/bitcoin
添加源成功之后,需要更新下源:
sudo apt-get update
安裝bitcoind:
sudo apt-get install bitcoind
可以選擇性的安裝bitcoin-qt,在ubuntu-service版本上是不需要bitcoin-qt的,如果是在ubuntu-desktop上面想使用bitcoin-qt的話可以選擇安裝:
sudo apt-get install bitcoin-qt
直接輸入bitcoind命令可以讓bitcoind在前臺直接運行:
bitcoind
也可以采用后臺運行的方式,也可以和我一樣用nohup打印一下日志
nohup bitcoind &
通過命令查看錢包版本,以及是否安裝成功
bitcoind -version Bitcoin Core Daemon version v0.18.0.0-g2472733a24a9364e4c6233ccd04166a26a68cc65 Copyright (C) 2009-2019 The Bitcoin Core developers Please contribute if you find Bitcoin Core useful. Visit <https: bitcoincore.org> for further information about the software. The source code is available from <https: github.com bitcoin>. This is experimental software. Distributed under the MIT software license, see the accompanying file COPYING or <https: opensource.org licenses mit> This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https: www.openssl.org> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard.
啟動后錢包會自動同步區塊,可以打開日志查看具體同步情況
tail -f nohup.out
進入bitcoin安裝目錄
cd $HOME/.bitcoin ls banlist.dat bitcoind.pid blocks chainstate debug.log peers.dat wallets ls wallets/ database db.log wallet.dat
因為此次我安裝的版本是0.18,所以相比老版本有所改變,wallet.bat文件在wallet文件夾里面,上面我們可以看到文件夾最新結構,下面是具體文件夾介紹
bitcoind.pid bitcoind 運行的進程文件 blocks 區塊鏈數據文件 chainstate 區塊鏈狀態的數據庫使用LevelDB存儲 db.log 數據庫日志文件 debug.log 運行時的日志文件 wallet.dat 錢包文件(這個要劃重點了,此文件保存了我們錢包生成的私鑰,特別重要,建議通過編寫shell腳本或者使用后臺程序每天做個備份)
安裝supervisor(進程監控),錢包掛掉可以使程序自啟
sudo apt-get install supervisor
bitcoin-cli getwalletinfo 查看錢包詳情,在0.18版本中,以前的getinfo已經取消 { "walletname": "", "walletversion": 169900, 錢包版本 "balance": 0.00000000, 錢包余額 "unconfirmed_balance": 0.00000000, 未確認余額 "immature_balance": 0.00000000, 這個暫時還不清楚 "txcount": 0, 錢包內交易數量 "keypoololdest": 1562826486, 密鑰池內最早密鑰創建時間 "keypoolsize": 1000, 密鑰池大小 "keypoolsize_hd_internal": 1000, "paytxfee": 0.00000000, 手續費率(這個比較重要,后面單獨講) "hdseedid": "ed13b2019c2e28e9dc84cf7124ba2e36cebcb656", "private_keys_enabled": true } bitcoin-cli getblockchaininfo 查看區塊詳情 { "chain": "main", "blocks": 238558, 錢包當前區塊(btc安裝啟動后一般1-2天可以同步到最新區塊高度) "headers": 584893, 當前最新區塊高度 .... 后面還有其他信息,我們暫不關注 } bitcoin-cli sendtoaddress 轉賬接口(后面具體介紹) Response: 1. "address" (string, required) 接收地址 2. "amount" (numeric or string, required) 轉賬金額 Result: "txid" (string) 唯一標識tx_id Examples: > bitcoin-cli sendtoaddress "1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd" 0.1 > curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "sendtoaddress", "params": ["1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd", 0.1] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
用戶在頁面進入btc充值頁面時,調用后臺查詢充值地址,如果沒有充值地址我們通過btc錢包rpc接口“getnewaddress”創建一個屬于用戶的充值地址保存到數據庫并返回給頁面,用戶往這個地址轉幣進行充值。
后臺起一個線程或者調度任務根據區塊高度掃描當前區塊中交易記錄,取出來和數據庫中充值地址對比,如果是平臺用戶的充值地址交易記錄,保存到區塊轉賬記錄表中(表中可設置tx_id為主鍵,tx_id為區塊轉賬信息唯一標識,不會重復)。
普通用戶提交提現表單后,如果提現數量大于設置的審核數量,則需要進到管理后臺人工審核,審核通過后同步給提現地址轉幣,并更新審核狀態和修改用戶資產信息。
添加調度任務掃描區塊轉賬表中待處理的記錄,根據確認數來決定是否進行后續處理
轉賬目前有多種方式和接口,下面做詳細介紹:
是使用離線簽名方式的原生交易,適合冷錢包轉賬交易,大概步驟為先創建交易信息進行簽名后,通過返回的hash值,廣播出去后即可(廣播也可以使用第三方服務進行廣播),需要單獨設置手續費,設置找零地址;
sendfrom接口,這個接口可以設置指定發送地址;
sendmany接口,這個接口看名字也大概知道,可以批量轉賬;
sendtoaddress接口,這個接口是使用整個錢包的utxo(簡單理解就是整個錢包的可用余額)進行對外轉賬,好處就是他是把錢包所有的余額匯集一起對外轉賬,比如說用戶提現1btc,如果我用其他接口指定轉出地址時,轉出地址余額沒有1btc就無法轉賬,但是因為這個接口是把錢包余額加起來對外轉,所有可以成功轉出。
目前我的項目是設置的定時器每天在不同時間執行三次歸集任務,因為用的sendtoaddress轉賬的接口,所以我每次歸集的時候查詢錢包余額是否超過歸集閾值,超過就做歸集操作。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Bitcoin Core錢包如何安裝與對接”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。