哼哼哼 分布一致性學習1

2021-08-28 20:33:43 字數 3046 閱讀 2532

基礎技術

庫: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 複製是導致出現資料一致性問題的唯...

分布式一致性

分布式一致性是指在分布式環境中對某個副本資料進行更新操作時,必須確保其他副本也會更新,避免不同副本資料不一致。分布式系統乙個重要的問題時解決資料複製,一是為了增加系統的可用性防止單點故障,二是提高系統可用性,通過負載聚恆,使分布在不同位置的資料副本能夠提供服務。理想狀態下,當然希望分布式系統能夠實現...

分布式一致性

分布式系統的乙個重要問題是資料的複製。對資料的複製一般有兩個原因 資料複製的主要難題是保持各個副本的一致性。即在更新乙個副本時,必須確保同時更新其他的副本,否則資料的各個副本將不再相同。一致性模型實質上是程序和資料儲存之間的乙個約定。正常情況下,乙個資料項上執行讀操作時,它期待該操作返回的是該資料在...