比特幣(Bitcoin)的概念最初由中本聰在2008年11月1日提出,并于2009年1月3日正式誕生。根據中本聰的思路設計發布的開源軟件以及建構其上的P2P網絡。比特幣是一種P2P形式的虛擬的加密數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。與所有的貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定算法,通過大量的計算產生,比特幣經濟使用整個P2P網絡中眾多節點構成的分布式數據庫來確認并記錄所有的交易行為,并使用密碼學的設計來確保貨幣流通各個環節安全性。P2P的去中心化特性與算法本身可以確保無法通過大量制造比特幣來人為操控幣值?;诿艽a學的設計可以使比特幣只能被真實的擁有者轉移或支付。這同樣確保了貨幣所有權與流通交易的匿名性。比特幣與其他虛擬貨幣最大的不同,是其總數量非常有限,具有極強的稀缺性。 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的源:
sudoadd-apt-repositoryppa:bitcoin/bitcoin
添加源成功之后,需要更新下源:
sudoapt-getupdate
安裝bitcoind:
sudoapt-getinstallbitcoind
可以選擇性的安裝bitcoin-qt,在ubuntu-service版本上是不需要bitcoin-qt的,如果是在ubuntu-desktop上面想使用bitcoin-qt的話可以選擇安裝:
sudoapt-getinstallbitcoin-qt
直接輸入bitcoind命令可以讓bitcoind在前臺直接運行:
bitcoind
也可以采用后臺運行的方式,也可以和我一樣用nohup打印一下日志
nohupbitcoind&
通過命令查看錢包版本,以及是否安裝成功
bitcoind-versionBitcoinCoreDaemonversionv0.18.0.0-g2472733a24a9364e4c6233ccd04166a26a68cc65Copyright(C)2009-2019TheBitcoinCoredevelopersPleasecontributeifyoufindBitcoinCoreuseful.Visit<https:bitcoincore.org>forfurtherinformationaboutthesoftware.Thesourcecodeisavailablefrom<https:github.combitcoin>.Thisisexperimentalsoftware.DistributedundertheMITsoftwarelicense,seetheaccompanyingfileCOPYINGor<https:opensource.orglicensesmit>ThisproductincludessoftwaredevelopedbytheOpenSSLProjectforuseintheOpenSSLToolkit<https:www.openssl.org>andcryptographicsoftwarewrittenbyEricyoungandupnpsoftwarewrittenbyThomasBernard.
啟動后錢包會自動同步區塊,可以打開日志查看具體同步情況
tail-fnohup.out
進入bitcoin安裝目錄
cd$HOME/.bitcoinlsbanlist.datbitcoind.pidblockschainstatedebug.logpeers.datwalletslswallets/databasedb.logwallet.dat
因為此次我安裝的版本是0.18,所以相比老版本有所改變,wallet.bat文件在wallet文件夾里面,上面我們可以看到文件夾最新結構,下面是具體文件夾介紹
bitcoind.pidbitcoind運行的進程文件blocks區塊鏈數據文件chainstate區塊鏈狀態的數據庫使用LevelDB存儲db.log數據庫日志文件debug.log運行時的日志文件wallet.dat錢包文件(這個要劃重點了,此文件保存了我們錢包生成的私鑰,特別重要,建議通過編寫shell腳本或者使用后臺程序每天做個備份)
安裝supervisor(進程監控),錢包掛掉可以使程序自啟
sudoapt-getinstallsupervisor
bitcoin-cligetwalletinfo查看錢包詳情,在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-cligetblockchaininfo查看區塊詳情{"chain":"main","blocks":238558,錢包當前區塊(btc安裝啟動后一般1-2天可以同步到最新區塊高度)"headers":584893,當前最新區塊高度....后面還有其他信息,我們暫不關注}bitcoin-clisendtoaddress轉賬接口(后面具體介紹)Response:1."address"(string,required)接收地址2."amount"(numericorstring,required)轉賬金額Result:"txid"(string)唯一標識tx_idExamples:>bitcoin-clisendtoaddress"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd"0.1>curl--usermyusername--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錢包如何安裝與對接”這篇文章對大家有幫助,同時也希望大家多多支持本站,關注本站行業資訊頻道,更多相關知識等著你來學習!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
企業銀行客戶號是什么?企業銀行客戶號是銀行給企業分配的一個編碼 ,助理企業網銀時對應企業的唯一號碼 ,類似于個人身份證號,一般是一串數字。如果不記得企業銀行客戶號,可以通過致電開戶銀行進行人工咨詢或持企業印鑒到開戶行人工柜臺進行查詢。銀行客戶號是開通網銀時產生的,網銀是互聯網中設立的在線虛擬柜臺,分為個人網銀和企業網銀,企業網銀就是專門針對企業業務辦理而設立的,客戶可以在企業網銀.上進行轉賬、投資...
提起古代一對一寵文帶肉婚后溫馨大家在熟悉不過了,被越來越多的人所熟知,那你知道古代一對一寵文帶肉婚后溫馨嗎?快和小編一起去了解一下吧!1、《藩王的寵妃》,作者:亂鴉;(資料圖片)2、《望門閑妃》,作者:水千澈;3、《妖孽夫,桃花妻》,作者:老郭家的餅餅;4、《一世寵溺》,作者:火靈鳳;5、《你叫衛紫衣》,作者:萍蹤;6、《水兒小俏奴》,作者:蝶兒弄舞;7、《謙王煞妃》,作者:腹黑小主;8、《吟詠風...
(資料圖)在生活中,很多人都不知道300英雄三笠的稱號如何獲得是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的300英雄三笠的稱號如何獲得相關的一些知識,我們一起來學習下吧!參與活動,在300大作戰累計登錄滿7天,即可在300英雄獲得稱號。參與三笠祭所有活動前提條件:1、參與三笠祭所有活動,都需使用同一賬號登錄2個游戲,300大作戰和300英雄;2、三笠祭所有活動任務都需前往300大作戰...