原创 並不唯一的交易ID

文章目錄1. 前言2. 事實3. 解釋4. 處理4.1. 如何讓礦工生成不相同`TxID`的`coinbase`?4.1.1. `BIP30`4.1.1.1. 特殊情況的考慮4.1.2. `BIP34`4.2. 如何處理已有的兩起

原创 btcd源碼解析——交易創建 (3) —— 構造解鎖腳本

文章目錄5. 構造解鎖腳本5.1. `SignTxOutput`函數5.2. `PubKeyHashTy`類型的解鎖腳本5.2.1. `ExtractPkScriptAddrs`函數5.2.1.1. `typeOfScript`函

原创 btcd源碼解析——交易創建

文章目錄1. 寫在前面2. 相關命令3. 從btcctl到btcwallet4. btcwallet中的實現——創建新交易4.1. wallet變量的傳入4.2. 創建output4.2.1. 將字符串解碼爲地址4.2.1.1 E

原创 理解比特幣的raw transaction (2) OP_RETURN類型輸出

1. 寫在前面 上一篇博客中,我們介紹了簡單的P2PKH類型輸出。這一篇博客,我們將介紹OP_RETURN類型的輸出。 1.1 什麼是OP_RETURN類型的交易 OP_RETURN操作碼的引入主要是用來規範向比特幣交易中寫入額外

原创 理解比特幣的raw transaction (1) P2PKH類型輸出

1. 寫在前面 我們經常需要查看比特幣中的一些交易數據,比如說一筆交易的發送方和接收方賬戶是什麼,交易額爲多少。其實,通過一些比特幣的區塊瀏覽器很容易能夠查詢到。區塊瀏覽器其實是幫我們提前解析好了數據,並通過網頁的形式展現出來。

原创 談談序列化的作用

文章目錄1. 寫在前面2. 問題闡述3. 解釋3.1 一些不夠完整的解釋3.2 一種完整的解釋3.2.1 去地址3.2.2 節省空間4. 小節參考鏈接 1. 寫在前面 我們應該都用過各種序列化(serialization)的方法(

原创 談談FLP和CAP的關係

1. 寫在前面 承接上一篇博客:也談分佈式系統中的網絡模型和故障模型,本篇博客仍然想探討一些分佈式系統的理論知識。 大家應該都聽說過分佈式系統理論中的FLP不可能性和CAP不可能三角,那麼FLP和CAP之間是什麼關係呢?等價還是包

原创 也談分佈式系統中的網絡模型和故障模型

文章目錄1. 寫在前面2. 再理解網絡模型2.1 一個疑問3. 故障模型的劃分3.1 一個疑問3.2 按照故障發生的領域分類(Domain of failure occurrence)3.2.1 值故障 (Value failur

原创 btcd源碼解析 —— 簽名機制(1) —— 基礎知識

文章目錄1. 寫在前面2. 簽名流程簡述2.1. 簽名的數目2.2. 簽名的對象3. 簽名類型介紹3.1. 基本類型3.2. 組合類型3.3. 源碼&字節碼分析3.3.1. 定義3.3.2. 舉例 1. 寫在前面 在前面的比特幣源

原创 btcd源碼解析 —— 簽名機制(2) ——簽名流程

文章目錄4. 簽名流程——原理層4.1. 無修飾類4.1.1. `SIGHASH_ALL`類型4.1.2. `SIGHASH_NONE`類型4.1.3. `SIGHASH_SINGLE`類型4.2. 有修飾類4.2.1. `SIG

原创 btcd源碼解析 —— 簽名機制(3) —— 源碼分析

文章目錄5. 簽名流程——源碼層5.1. 特殊情況的處理5.2. 刪除`OP_CODESEPARATOR`操作碼5.3. `input`部分的通用處理5.4. 針對無修飾類具體類型的處理5.4.1. `SIGHASH_NONE`類

原创 btcd源碼解析——交易創建(2)—— input的創建

文章目錄4.3. 創建input4.3.1. “創建交易”的請求4.3.2. 生成“創建交易”的請求4.3.3. txToOutputs函數4.3.3.1. makeInputSource函數4.3.3.2. NewUnsigne

原创 Java中訪問內部類的一些思考

Java中的內部類雖然在定義上與普通類沒有太多的不同,但由於其位置的特殊性(在另一個類的內部),其訪問方式也比較特殊。本文就內部類Ain作爲外部類Aout成員變量時,從其他類B中訪問AIn的格式進行一些對比和說明。   一、Java中訪問

原创 Java中異常機制的幾點思考

1.對異常處理的語法檢查是在編譯期進行的,而非運行期。也就是說即使某拋出了異常但未被正確處理的方法,在執行期並未被真正調用,也會編譯出錯。如下面的 ExtendExcepDemo1.java代碼中,Test類中建立了A類的對象a,並調用了

原创 Java中複雜的I/O流

最近在學Java中的I/O流操作。這“流”的世界,怎一個高深了得。。斷斷續續學了近半個月,在此就想對I/O流操作做一個簡單的梳理工作。。。。 一、I/O流操作的分類      要想對一個複雜體系有一個全面的認識,就得試着將體系按照