首先,我們將建立一個回歸比特幣測試鏈作為一個操場,我們可以觀察事物的運作方式以及如何與區塊鏈進行交互。因為這個鏈沒有任何價值,我們可以隨時生成新的塊,所以它是學習的理想選擇,而不會有實際損失金錢的風險。稍后,我將展示coinbase交易的樣子以及它的優點。最后,我們將使用比特幣核心附帶的命令行工具Bitcoin -tx創建我們自己的事務。比特幣核心是比特幣協議的參考實現。圖形版本稱為bitcoin-qt,它附帶一個命令行工具,可以創建名為bitcoin-tx的事務。
先決條件:你要擁有bitcoin-qt (v0.17.1或更高版本)。
那我們開始吧?
Mainnet, testnet, regtest——它們是啥意思?
比特幣和大多數其他加密貨幣都有三種操作模式。
Mainnet(主網)是作為官方版本使用的網絡,它具有一定的價值。所有真實的交易都發生在這個網絡上,人們通過mainnet獲得報酬。
Testnet(測試網),一個與主網具有幾乎相同規則的網絡(一些操作碼在mainnet上是禁止的,而在Testnet上取消了這個限制)。它有對等點發現功能,即它可以在testnet網絡上找到類似于mainnet的對等點,并且運行它的是一個對等點(p2p)網絡。
Regtest是一個私有的區塊鏈,它具有與testnet相同的規則和地址格式,但是沒有要連接到的全局p2p網絡。
由于mainnet幣有價值,而testnet/regtest幣沒有價值,所以它們由不同的前綴來區分。Mainnet地址以“1”、“3”或“bc1”開頭,testnet/regtest地址以“m”、“n”、“2”或“tb1”開頭。記住,testnet/regtest地址沒有值,所以了解它們之間的區別很重要!錢包可以檢測出其中的差別,但也有一些情況下,人們也會被人用testnet的幣忽悠!
我們將使用regtest,因為我們可以輕松地創建自己的區塊鏈,并且可以使用一個方便的命令在不挖掘硬件的情況下挖掘塊,我將在稍后討論這個命令。
圖形化的比特幣核心客戶端Bitcoin-qt也能在視覺上區分不同的網絡,以幫助您識別其運行的模式。當您第一次安裝Bitcoin -qt時,它將運行在使用熟悉的橙色比特幣符號的mainnet上。Testnet使用綠色,regtest使用藍色。
圖1所示。運行mainnet、testnet和regtest時使用Bitcoin-qt。
好的,但是如何切換到regtest呢?
不用擔心,切換到regtest非常容易。你只需要編輯比特幣的配置文件。幸運的是,可以通過GUI選項輕松地訪問它。
bitcoin-qt開始。當您第一次啟動它時,它將如圖2所示。點擊設置-》選項-》打開配置文件。
圖2所示。訪問bitcoin-qt設置。
圖3所示。打開配置文件。
將以下行添加到配置文件中,然后保存:
regtest= 1
關閉bitcoin-qt并重新打開它。 您的加載屏幕應該如圖3所示。
恭喜你,你現在已經準備好研究比特幣內部了!
熟悉控制臺
Bitcoin-qt使得與比特幣守護進程交互變得非常容易。控制臺在GUI中很容易訪問。您可以在幫助-》調試窗口-》控制臺中找到它。
圖4所示,調試窗口中的信息頁。
如您所見,將出現一個新窗口,其中包含關于bitcoin-qt及其運行的網絡模式的各種信息。注意,網絡名稱是regtest。確保你的也是。
讓我們單擊console選項卡,如圖5所示
圖5,調試窗口信息頁面。
有幾個命令可以用來與比特幣守護進程交互。要查看它們,請在窗口底部鍵入help并按Enter。您可以向上滾動查看命令的完整列表。如果需要對特定命令的幫助,請鍵入help 《command name》。
圖6所示。help命令的部分輸出。
如果仔細觀察,第三個命令稱為getblockchaininfo。看看它能做什么?命令help可以幫到你很多。)
輸入help getblockchain信息。正如help系統所述,這個命令將提供有關區塊鏈的信息。
圖7所示。getblockchaininfo的help頁面。
在console (RPC)窗口中輸入blockchaininfo命令并檢查輸出。輸出是一種奇怪的(至少對非程序員來說)格式,稱為JSON (JavaScript對象表示法)。它是一種計算機可以很容易理解的格式,而且只需了解一下相關知識,我們也可以理解。help getblockchaininfo命令描述了每個鍵的含義。
圖8所示。getblockchaininfo的JSON輸出。
生成我們自己的塊
Regtest現在已經設置好,但是還沒有塊。什么樣的區塊鏈沒有塊?
Generate 命令救援!
正如前面提到的,regtest環境允許我們創建任意數量的塊,而不需要使用任何挖掘asic或專用硬件。這使得測試在比特幣運行過程中可能發生的不同情況這一點,變得很容易,而且我們還可以隨時創建塊來節省時間。
讓我們生成一些塊,以便稍后測試BTC。我們必須考慮挖掘規則,即一個人只能花費一個塊獎勵,前提是他之前已經挖掘了100個塊。這意味著我們必須生成101個塊來使50 regtest BTC可使用。打開控制臺,輸入: generate 101
圖9所示。generate命令輸出。
你會看到很多彈出窗口寫著“傳入的交易”。等幾秒鐘,直到它們消失。奇怪的數字和字母是生成的塊的散列。
請注意圖11中“balance”標簽下面的數字。我們現在有50個rBTC可用,記住,我們生成了101個塊,所以第1塊已經成熟,獎勵可以使用。
對如何使用獎勵、coinbase交易是什么以及比特幣交易如何工作感興趣?
評論
查看更多