基礎技術
庫:secp256k1:橢圓曲線非對稱加密,數字簽名庫
qt:gui庫
univalue:資料型別庫,服務於rpc序列化
其他資料夾:
compact:大小端,系統適配等,重寫了部分位元組操作
consensus:merkle計算,分叉規則,一致性驗證
crypto:雜湊演算法,加密演算法
support:記憶體控制,主要服務於記憶體池
index:交易讀寫(1.查詢交易;2.新區塊加入同步資料)
infe***ce:1.event handler介面
2.守護程序bitcoind,呼叫node功能的介面
3.bitcoin錢包功能介面
policy:1.交易選取規則(基於feerate的動態規劃)
2.檢查交易格式
3.rbf交易替換(高費率優先)
ps:交易成功的流程:發起交易-->交易池-->交易桶-->寫入區塊
primitive: 1.區塊構建;
2.校驗交易的輸入輸出簽名
scrpit: 1.交易溯源;
2. 金鑰驗證;
3. 交易指令碼;
4. 簽名;
5. 簽名cache(快取常用簽名及其hash以節約時間)
檔案:p2p網路管理:
③ net:網路節點管理
④ net_processing:節點的通訊操作,廣播通知,狀態驗證等
⑥ netbase:網路通訊
⑦ protocol:網路通訊格式
⑧ random:ssl隨機數種子
⑨ timedata:p2p網路時間同步
amount:最大交易量,系統常量(camount max_money = 21000000 * coin)
arith_uint256:256-bit 無符號大整數
base58:編碼器,base64的變種 key_io
bench32:string編碼器,base32變種 key_io
bitcoin-cli:命令列的位元幣客戶端(rpc client)
bitcoind:服務節點守護程序
bitcoin-tx:位元幣交易處理程式
blockencodings:交易裝填到區塊中
bloom:布隆過濾器
鏈體:chain:區塊鏈物件,維護著整個鏈的狀態及各種引數
chainparams:區塊鏈物件的一些可調引數,包括主鏈,公有測試鏈,和私有鏈
chainparamsbase:區塊鏈物件的基本引數
chainparamsseeds:p2p網路的dns節點,用於解析及發現節點
checkpoints:chain index檢查點
checkqueue:待驗證資訊佇列,主線程放入資料,多執行緒並行檢查驗證
clientversion:客戶端版本驗證
coins: unspent transaction output entry 即位元幣交易的coin 實體,因為位元幣每筆交易都是由utxo而來
compressor:輸出指令碼壓縮編碼
core_io:tx物件與str物件的相互轉化
cuckoocache:基於cuckoo hash的記憶體cache
dbwarpper:資料庫上級介面
fs:檔案操作介面
hash:sha-256雜湊
httprpc:rpc的http封裝
非對稱金鑰管理
key:呼叫secp256k1的公私金鑰處理
key_io:簽名及加密後的重編碼
keystore:金鑰管理器
pubkey:公鑰管理
logging:全域性日誌
noui:基於messagebox的ui
rest:http的rest服務
挖礦:init:系統初始化,各個執行緒的初始化
txmempool:交易池
merkleblock:生成merkletree 形式的block體
miner:礦工從txpool選取tx到block準備寫入
pow:工作量證明演算法
執行緒管理:
scheduler:執行緒排程器
sync:死鎖處理
threadinterrupt:執行緒中斷
txdb:dbview
ui_inte***ce:ui介面
uint256:256bit不透明二進位制物件
undo:序列化與取消序列化
utilmoneystr:交易額轉string
utilstrencoding:去掉string裡的不安全字元
utiltime:取得時間,時間格式轉換
validation:確認接受新區塊
versionbits:區塊鏈版本維護
warnings:潛在錯誤
強一致性 弱一致性 最終一致性
這種方式在es等分布式系統中也有體現,可以設定主shard提交即返回成功,或者需要replica shard提交成功再返回。提到分布式架構就一定繞不開 一致性 問題,而 一致性 其實又包含了資料一致性和事務一致性兩種情況,本文主要討論資料一致性 事務一致性指acid 複製是導致出現資料一致性問題的唯...
分布式一致性
分布式一致性是指在分布式環境中對某個副本資料進行更新操作時,必須確保其他副本也會更新,避免不同副本資料不一致。分布式系統乙個重要的問題時解決資料複製,一是為了增加系統的可用性防止單點故障,二是提高系統可用性,通過負載聚恆,使分布在不同位置的資料副本能夠提供服務。理想狀態下,當然希望分布式系統能夠實現...
分布式一致性
分布式系統的乙個重要問題是資料的複製。對資料的複製一般有兩個原因 資料複製的主要難題是保持各個副本的一致性。即在更新乙個副本時,必須確保同時更新其他的副本,否則資料的各個副本將不再相同。一致性模型實質上是程序和資料儲存之間的乙個約定。正常情況下,乙個資料項上執行讀操作時,它期待該操作返回的是該資料在...