国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

區(qū)塊鏈筆記(3)比特幣交易的數(shù)據(jù)和流程

MorePainMoreGain / 4000人閱讀

摘要:在交易發(fā)生時有獲取賬戶余額的需求,都是通過統(tǒng)計整個區(qū)塊鏈上,該錢包地址關(guān)聯(lián)的所有未花費(fèi)交易輸出上的比特幣數(shù)量來完成的。

區(qū)塊鏈技術(shù)只能用來做關(guān)于金融交易的應(yīng)用么?或許先去了解它有關(guān)交易的細(xì)節(jié),才能看到是否有其它應(yīng)用的可能。
1 交易的數(shù)據(jù)模型 1.1 起因

在此之前,我們關(guān)于Bitcoin Core介紹了許多,以及把它當(dāng)作工具如何使用,現(xiàn)在我們將進(jìn)一步來研究下區(qū)塊鏈中的數(shù)據(jù)模型。

為什么說將區(qū)塊和交易當(dāng)作數(shù)據(jù)模型來理解非常重要?

我的答案是:為了知道如何使用數(shù)據(jù)。

我們使用區(qū)塊鏈應(yīng)用與網(wǎng)絡(luò)中的其它節(jié)點(diǎn)進(jìn)行通信、交互以及協(xié)作時,可能更關(guān)注的是協(xié)議。但如果直接去看協(xié)議,可能會不容易看得通透,例如在面對一些問題:通過協(xié)議傳輸?shù)臄?shù)據(jù)長什么樣?開發(fā)自己的區(qū)塊鏈應(yīng)用時,數(shù)據(jù)是主角,那如何組織和使用它呢?要搞清楚,數(shù)據(jù)模型這座大山勢必要推倒。

另外談到數(shù)據(jù)這個話題,開發(fā)者可以通過操作碼(Op-code)的方式向區(qū)塊中嵌入額外的數(shù)據(jù),對此目前社區(qū)反應(yīng)出兩種不同的聲音,以比特幣平臺為例,一些人認(rèn)為比特幣區(qū)塊鏈如此便包含了許多非金融數(shù)據(jù),當(dāng)區(qū)塊鏈不斷延展的同時,會對那些不在意這些數(shù)據(jù)的人的存儲空間帶來了沉重的負(fù)擔(dān);另一些人則認(rèn)為這些非金融數(shù)據(jù)的存在,可能使區(qū)塊鏈在金融領(lǐng)域之外,產(chǎn)生更多的應(yīng)用可能。

Op-code:來自比特幣腳本語言的一些操作碼,用于在公鑰腳本和簽名腳本中推送數(shù)據(jù)或執(zhí)行函數(shù)。

其實在社區(qū)中看到類似的爭論還是蠻有意思的,早期時候,人們?yōu)榱私o比特幣交易添加備注信息,或其他和交易本身無關(guān)的非金融數(shù)據(jù),是通過刻錄比特幣的方式來進(jìn)行的,就是在不同的交易中,將output里的驗證腳本換成其他數(shù)據(jù),這會使得UTXO數(shù)據(jù)集不斷變大,因為這么做會導(dǎo)致這筆交易里的比特幣不能再被花費(fèi),又因為整個比特幣系統(tǒng)出于速度的考慮,會把所有未被花費(fèi)的交易(UTXO)都存儲在內(nèi)存中,這必然使得網(wǎng)絡(luò)各節(jié)點(diǎn)中包含大量的冗余信息,造成跨節(jié)點(diǎn)分類賬的維護(hù)成本變高。而現(xiàn)在,隨著新的改進(jìn)方案已納入?yún)^(qū)塊鏈和操作碼中,如Op-return。如此協(xié)議已經(jīng)漸趨成熟,UTXO數(shù)據(jù)集就不會夸張的膨脹.

UTXO:即未花費(fèi)的交易輸出(Unspent Transaction Outputs),它是比特幣交易生成及驗證的一個核心概念。交易構(gòu)成了一組鏈?zhǔn)浇Y(jié)構(gòu),所有合法的比特幣交易都可以追溯到前向一個或多個交易的輸出,這些鏈條的源頭都是挖礦獎勵,末尾則是當(dāng)前未花費(fèi)的交易輸出。另外值得提的一點(diǎn)是,在比特幣錢包當(dāng)中,我們都可以看到賬戶余額,但在這個賬戶余額的概念與我們所熟知的銀行賬戶余額有著巨大的不同,其實站在UTXO交易模型上看,并沒有什么所謂一個一個的比特幣,有的只是UTXO。當(dāng)我們說張三擁有10個比特幣的時候,我們實際上是在說,當(dāng)前區(qū)塊鏈賬本中,有若干筆交易的UTXO項的收款人寫的是張三的地址,而這些UTXO項的數(shù)額總和是10。比特幣錢包中所看到的賬戶余額,實際上則是錢包通過掃描區(qū)塊鏈并聚合所有屬于該用戶的UTXO計算得來的。

Op-return:本質(zhì)上講,OP_RETURN是一個腳本操作碼,是專門被設(shè)計出來承載額外的交易信息的。它的作用就像我們在日常轉(zhuǎn)賬過程中的備注信息。通過它發(fā)送的數(shù)據(jù)會和我們進(jìn)行的比特幣交易一樣,永久保存在比特幣區(qū)塊鏈的區(qū)塊中。

1.2 交易的輸入和輸出

不論你面對的是哪種區(qū)塊鏈應(yīng)用,交易都是區(qū)塊鏈系統(tǒng)中最重要的部分。你可以把交易理解為組成區(qū)塊鏈宇宙的原子,正如原子是組成所有生命的基礎(chǔ),交易則是組成數(shù)據(jù)塊的單位。你可能已經(jīng)注意到了,比特幣區(qū)塊鏈上所做的任何事情都是,為了確保一筆交易能否被創(chuàng)建,并在網(wǎng)絡(luò)中傳播和驗證,以及最終添加到區(qū)塊鏈上。當(dāng)然搞清楚這些具體細(xì)節(jié),還是為了以后能夠創(chuàng)建自己的區(qū)塊鏈應(yīng)用。所以現(xiàn)在還是一步一步來,先回顧下交易是如何運(yùn)作的,以及它的輸入和輸出,這對后面討論交易的數(shù)據(jù)模型來說很重要。

交易描述的是一筆資金從它的原始所有者(input)向即將所有者(output)價值轉(zhuǎn)化的數(shù)據(jù)結(jié)構(gòu)

以下交易詳情是使用之前我們介紹過的站點(diǎn),查看比特幣測試鏈上的一筆交易:

從圖中顯而易見的是,有兩筆為0.01BTC的輸入,參與了一次0.001BTC的轉(zhuǎn)賬后,又退回給原所有者0.019BTC,基于此我想問的是:這些輸入從何而來,產(chǎn)生的新輸出又去向何處?

一個交易的輸入,都來自與另一個交易的未花費(fèi)輸出(UTXO)。

在交易發(fā)生時有獲取賬戶余額的需求,都是通過統(tǒng)計整個區(qū)塊鏈上,該錢包地址關(guān)聯(lián)的所有UTXO(未花費(fèi)交易輸出)上的比特幣數(shù)量來完成的。所以并不存在存儲一個賬戶余額的字段,或者一個比特幣的地址。

1.3 數(shù)據(jù)模型

這一小節(jié)我們來看交易的信息在數(shù)據(jù)模型中是如何存儲的。如果要求網(wǎng)絡(luò)返回一個原始交易信息給我們,所得到的可能是像下面這樣的信息:

0100000001f3f6a909f8521adb57d898d2985834e632374e770fd9e2b98656f1bf1fdfd427010000006b48304502203a776322ebf8eb8b58cc6ced4f2574f4c73aa664edce0b0022690f2f6f47c521022100b82353305988cb0ebd443089a173ceec93fe4dbfe98d74419ecc84a6a698e31d012103c5c1bc61f60ce3d6223a63cedbece03b12ef9f0068f2f3c4a7e7f06c523c3664ffffffff0260e31600000000001976a914977ae6e32349b99b72196cb62b5ef37329ed81b488ac063d1000000000001976a914f76bc4190f3d8e2315e5c11c59cfc8be9df747e388ac00000000

這是一條還未解碼成JSON對象的十六進(jìn)制數(shù)據(jù)。雖然確實不是很容易看的懂,但其實組織的還是很有條理的。以上面這條信息為例,從起始位開始,一條交易一般包含如下內(nèi)容:

比特幣的版本(Version):01000000

交易的輸入數(shù)量(Input Count):01

交易的輸入信息(Input Info):f3f6a909f8521adb57d898d2985834e632374e770fd9e2b98656f1bf1fdfd427010000006b48304502203a776322ebf8eb8b58cc6ced4f2574f4c73aa664edce0b0022690f2f6f47c521022100b82353305988cb0ebd443089a173ceec93fe4dbfe98d74419ecc84a6a698e31d012103c5c1bc61f60ce3d6223a63cedbece03b12ef9f0068f2f3c4a7e7f06c523c3664ffffffff

交易的輸出數(shù)量(Output Count):02

交易的輸出信息(Output Info):60e31600000000001976a914977ae6e32349b99b72196cb62b5ef37329ed81b488ac063d1000000000001976a914f76bc4190f3d8e2315e5c11c59cfc8be9df747e388ac

鎖定時間(loctime):00000000。它表示該條交易最早被確認(rèn)后,寫入的最早區(qū)塊或最早被確認(rèn)寫入的時間:

若該字段非零,且<5億,則表示該條交易最早被寫入的區(qū)塊的區(qū)塊號。

若>5億,則表示該條交易最早被寫入?yún)^(qū)塊的時間。

若為零,則表示該條交易立即被寫入?yún)^(qū)塊。

其中在交易的輸入信息和輸出信息中,還分別包含了一小段用以驗證該次交易是否有效地指令腳本:即輸入信息中的解鎖腳本(UnLocking script)和輸出信息中的鎖定腳本(Locking script)。

這里的腳本(script),指的是記錄在每條交易中的一系列指令字符,執(zhí)行用于驗證交易是否有效及比特幣能否發(fā)出。而名稱與之類似的比特幣腳本語句
(Bitcoin Script)是一種基于棧的簡單輕量級的語句,被設(shè)計用來能通用于一系列硬件平臺上做相關(guān)運(yùn)算的指令。我們可以在棧中存儲數(shù)字或數(shù)據(jù)常量,并使用一系列前綴為OP_的指令(Opcode)對數(shù)據(jù)進(jìn)行操作。例如通過OP_ADD將棧中的兩個數(shù)據(jù)進(jìn)行相加,通過OP_EQUAL來檢查棧頂?shù)膬蓚€元素是否相等,OP_DUP復(fù)制棧頂?shù)臄?shù)據(jù)等等,總共大概有80多個指令,詳見Opcodes的維基百科。

接下來我們通過一條簡單的算數(shù)運(yùn)算指令來具體觀察上面提到的三個概念:解鎖腳本、鎖定腳本和包含Opcodes指令的比特幣腳本語句,算數(shù)指令如下:

2 6 OP_ADD 8 OP_EQUAL

比特幣腳本語句的執(zhí)行順序是從左向右的,并且是基于棧結(jié)構(gòu)的,那么這條語句的執(zhí)行步驟就應(yīng)當(dāng)是:

數(shù)字2入棧;

數(shù)字6入棧;

執(zhí)行OP_ADD:數(shù)字6和2依次出棧后,相加所得的結(jié)果(8)再入棧;

數(shù)字8入棧

執(zhí)行OP_EQUAL:數(shù)字8和8依次出棧后,進(jìn)行相等比較,所得的結(jié)果(True)再入棧

其中我們可以將6 OP_ADD 8 OP_EQUAL這部分視為鎖定腳本,它需要滿足使其最終結(jié)果為True的解鎖腳本(2),才能完成算數(shù)驗證。也就是說如果用這條語句來驗證交易的有效性,那么所有知道數(shù)字2能滿足條件的解鎖語句,都可使其生效。

對于比特幣腳本語言有兩個特性:

無流程控制:語句簡單,不存在循環(huán)和條件控制,好處是不用擔(dān)心死循環(huán)之類的阻塞性錯誤;缺點(diǎn)是不夠靈活。

無狀態(tài):在執(zhí)行過程前后,不保存任何關(guān)于狀態(tài)的值,好處是安全,不論在哪個平臺上執(zhí)行相同的語句都會得到相同的答案;不足是比較簡單。

任何實現(xiàn)方式的特點(diǎn),都有其長短優(yōu)劣,在做整體方案架構(gòu)的考量時,應(yīng)謹(jǐn)慎根據(jù)業(yè)務(wù)場景進(jìn)行選取。

而在實際情況中,我們驗證交易有效性所使用得解鎖腳本(UnLocking script)和鎖定腳本(Locking script)構(gòu)成的比特幣腳本語句是如下的結(jié)構(gòu):

  OP_DUP OP_HASH160  OP_EQUALVERIFY OP_CHECKSIG

其中對應(yīng)于解鎖腳本(UnLocking script)和鎖定腳本(Locking script)的部分分別是:

UnLocking script:

Locking script:OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

忘了說清楚一點(diǎn),驗證交易發(fā)生的有效性,并不是用同一個交易的解鎖腳本(UnLocking script)和鎖定腳本(Locking script)進(jìn)行驗證。而是用當(dāng)前進(jìn)行交易的解鎖腳本,與該輸入回溯的UTXO中的鎖定腳本進(jìn)行驗證,而當(dāng)前交易的鎖定腳本則是用來,和未來將要發(fā)生的交易中的解鎖腳本進(jìn)行驗證。具體驗證關(guān)系如下圖:

交易的有效性驗證的工作原理其實很簡單,就是利用了非對稱加密,在解鎖腳本中,包含了錢包所有者用私鑰生成的簽名。因為只有錢包所有者才有交易權(quán),才能生成判斷交易有效地解鎖腳本。

具體拆分上面的原始交易數(shù)據(jù)如下圖:

其中我們將輸入信息細(xì)化為如下部分:

Previous output hash:所有的輸入都可以回溯到一個輸出,即上一筆交易所產(chǎn)生的UTXO。

Previous output index:可能一筆交易會包含多項UTXO,這項便是指定多個UTXO的索引,其中第一個UTXO從0開始算。

Script Size(bytes):表示解鎖腳本的字節(jié)數(shù)大小。

scriptSig:上文談到的解鎖腳本

Sequence:這目前是比特幣廢棄的一個屬性位,默認(rèn)設(shè)為ffffffff

而輸出信息也可細(xì)化出如下部分:

Amount:比特幣輸出的數(shù)量,按比特幣最小單位(Satoshis)計算,10^8 Satoshis = 1 Bitcoin.

Script Size(bytes): 表示鎖定腳本的字節(jié)數(shù)大小。

scriptPubKey:上文談到的解鎖腳本。

2 創(chuàng)建交易

通過比特幣錢包的GUI工具,雖然能夠完成比特幣區(qū)塊鏈生命周期中的基本操作,但存在一些局限性,所以接下來為了更深入的了解比特幣區(qū)塊鏈交易的細(xì)節(jié),我們將使用調(diào)試控制臺來創(chuàng)建一個交易,具體步驟如下:

在比特幣錢包中查看所有的UTXO

查看一個特定UTXO的細(xì)節(jié)

創(chuàng)建一個原始交易

解碼該原始交易

對該原始交易進(jìn)行簽名

將這個交易提交到網(wǎng)絡(luò)

通過TxID查詢所創(chuàng)建的交易

2.1 查看UTXO

我們可以通過在上一節(jié)介紹的比特幣錢包的調(diào)試窗口(Help-Debug Window)中,查看本錢包所有的UTXO,查詢命令為:listunspent。發(fā)現(xiàn)查詢結(jié)果是由一個個UTXO對象構(gòu)成的數(shù)組組成的,截取其中一個UTXO如下所示:

[
  ...
  {
    "txid": "811ffa0a5c8020a21f115df020b35a00503e4a87523b025390577ee727fbb73f", // 交易Id
    "vout": 1, // 輸出序號
    "address": "2N1KFMyBJZksopo7gpr7L5QwbtuphLREkGN", // 地址
    "redeemScript": "001462fab42642cbfe84c69a9e17fcb6c1ae27f63748", // 贖回腳本
    "scriptPubKey": "a9145883d125a1bb6db07e886bb167d966013f407c4487", // 公鑰腳本
    "amount": 0.01898328, // 可用金額
    "confirmations": 26738, // 確認(rèn)次數(shù)
    "spendable": true, // 當(dāng)前錢包是否擁有私鑰,以便能夠消費(fèi)該UTXO
    "solvable": true, // 是否可用,缺少秘鑰時忽略
    "safe": true // 未經(jīng)確認(rèn)的交易將被認(rèn)為是不安全的
  },
  ...
]
2.2 查看一個UTXO詳情

這步我們使用命令:gettxout來查詢一個未花費(fèi)交易的詳情,該命令接收三個參數(shù):交易ID、未花費(fèi)輸出的序號(從0開始)、一個可選的布爾值用來控制是否顯示內(nèi)存池中還未驗證的輸出。
復(fù)制上一步中的交易ID的查詢命令如下:

gettxout 811ffa0a5c8020a21f115df020b35a00503e4a87523b025390577ee727fbb73f 0

運(yùn)行后得到的結(jié)果如下:

{
  "bestblock": "00000000000000a88e2e39c56235eb61eaf40fca8273e31d5ce49a4d8577d51f",
  "confirmations": 26842, // 驗證次數(shù)
  "value": 0.00100000, // 交易金額(單位是BTC)
  "scriptPubKey": { // 解鎖腳本
    "asm": "OP_HASH160 c6176d6f78b0205a83bf4bbc516a23dc00a4ca64 OP_EQUAL", // 匯編格式(assembly)
    "hex": "a914c6176d6f78b0205a83bf4bbc516a23dc00a4ca6487", // 十六進(jìn)制格式
    "reqSigs": 1, // 所需的簽名數(shù)
    "type": "scripthash", // 加密類型
    "addresses": [ // 收款地址列表
      "2NBJdr34cWkdr31rQRRMvcFYAg7kM8wTiNB"
    ]
  },
  "coinbase": false
}
2.3 創(chuàng)建一個原始交易

使用命令:createrawtransaction,創(chuàng)建一個未簽名的序列化交易,該交易并不會存儲在錢包或傳輸?shù)骄W(wǎng)絡(luò)。需要兩個傳參:第一個是前一個輸出的引用,第二個是P2PKH或P2SH標(biāo)準(zhǔn)的收款地址及收款數(shù)量。創(chuàng)建命令示意如下:

createrawtransaction "[{"txid":"811ffa0a5c8020a21f115df020b35a00503e4a87523b025390577ee727fbb73f","vout": 1}]" "{"2NBn87R8AAwtXUNmmFULvDhmPyeka1X7rRD":0.001, "2NBJdr34cWkdr31rQRRMvcFYAg7kM8wTiNB": 0.001}"

我執(zhí)行后得到的輸出:

02000000013fb7fb27e77e579053023b52874a3e50005ab320f05d111fa220805c0afa1f810100000000ffffffff02a08601000000000017a914cb4a40c6ccaf652cc9a6459047494359c3ff25d787a08601000000000017a914c6176d6f78b0205a83bf4bbc516a23dc00a4ca648700000000
2.4 解碼

上一步所創(chuàng)建原始交易的輸出,是一串十六進(jìn)制字符串,顯然沒有什么可讀性。為了確認(rèn)我們所創(chuàng)建的正確性,我們需要將其解碼為可讀的JSON格式,使用到的命令是decoderawtransaction,執(zhí)行如下:

decoderawtransaction 02000000013fb7fb27e77e579053023b52874a3e50005ab320f05d111fa220805c0afa1f810100000000ffffffff02a08601000000000017a914cb4a40c6ccaf652cc9a6459047494359c3ff25d787a08601000000000017a914c6176d6f78b0205a83bf4bbc516a23dc00a4ca648700000000

輸出結(jié)果如下:

{
  "txid": "8af75c03ca2e7e84135b2809f73e75d758cfc5b72c1e51ae18b770baef844b54",
  "hash": "8af75c03ca2e7e84135b2809f73e75d758cfc5b72c1e51ae18b770baef844b54",
  "version": 2,
  "size": 115,
  "vsize": 115,
  "weight": 460,
  "locktime": 0,
  "vin": [
    {
      "txid": "811ffa0a5c8020a21f115df020b35a00503e4a87523b025390577ee727fbb73f",
      "vout": 1,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.00100000,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_HASH160 cb4a40c6ccaf652cc9a6459047494359c3ff25d7 OP_EQUAL",
        "hex": "a914cb4a40c6ccaf652cc9a6459047494359c3ff25d787",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": [
          "2NBn87R8AAwtXUNmmFULvDhmPyeka1X7rRD"
        ]
      }
    },
    {
      "value": 0.00100000,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_HASH160 c6176d6f78b0205a83bf4bbc516a23dc00a4ca64 OP_EQUAL",
        "hex": "a914c6176d6f78b0205a83bf4bbc516a23dc00a4ca6487",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": [
          "2NBJdr34cWkdr31rQRRMvcFYAg7kM8wTiNB"
        ]
      }
    }
  ]
}
2.5 簽名

從上面可讀性更好的原始交易信息中,看到交易輸入的scriptSig字段為空,這是因為我們還沒有為這個簽名,證明我們擁有對UTXO的使用權(quán)。接下來使用命令signrawtransactionwithwallet進(jìn)行簽名:

signrawtransactionwithwallet 02000000013fb7fb27e77e579053023b52874a3e50005ab320f05d111fa220805c0afa1f810100000000ffffffff02a08601000000000017a914cb4a40c6ccaf652cc9a6459047494359c3ff25d787a08601000000000017a914c6176d6f78b0205a83bf4bbc516a23dc00a4ca648700000000

簽名成功的輸出結(jié)果如下:

{
  "hex": "020000000001013fb7fb27e77e579053023b52874a3e50005ab320f05d111fa220805c0afa1f81010000001716001462fab42642cbfe84c69a9e17fcb6c1ae27f63748ffffffff02a08601000000000017a914cb4a40c6ccaf652cc9a6459047494359c3ff25d787a08601000000000017a914c6176d6f78b0205a83bf4bbc516a23dc00a4ca64870247304402207fbd59f6e806dc1aab5f602b796dc2ecfa96f0e018c7fe4ecc7dcf190e0619f10220168dffa1d5bd5876518530c72fd3bff59337050949c9732dabcfaeef7533de44012103959e3af1e6ddb01d6ac54966cda59464ab27fcaf34b0dca6df02f75d3df7668800000000",
  "complete": true
}

然后對簽名后的輸出進(jìn)行JSON解碼,會發(fā)現(xiàn)輸入部分多了些內(nèi)容:

{
...
"vin": [{
  "txid": "811ffa0a5c8020a21f115df020b35a00503e4a87523b025390577ee727fbb73f",
  "vout": 1,
  "scriptSig": {
    "asm": "001462fab42642cbfe84c69a9e17fcb6c1ae27f63748",
    "hex": "16001462fab42642cbfe84c69a9e17fcb6c1ae27f63748"
  },
  "txinwitness": ["304402207fbd59f6e806dc1aab5f602b796dc2ecfa96f0e018c7fe4ecc7dcf190e0619f10220168dffa1d5bd5876518530c72fd3bff59337050949c9732dabcfaeef7533de4401", "03959e3af1e6ddb01d6ac54966cda59464ab27fcaf34b0dca6df02f75d3df76688"],
  "sequence": 4294967295
}],
...
}
2.6 將簽名后的交易推送至網(wǎng)絡(luò)

使用命令sendrawtransaction將已簽名的交易推送至網(wǎng)絡(luò)。

sendrawtransaction 020000000001013fb7fb27e77e579053023b52874a3e50005ab320f05d111fa220805c0afa1f81010000001716001462fab42642cbfe84c69a9e17fcb6c1ae27f63748ffffffff02a08601000000000017a914cb4a40c6ccaf652cc9a6459047494359c3ff25d787a08601000000000017a914c6176d6f78b0205a83bf4bbc516a23dc00a4ca64870247304402207fbd59f6e806dc1aab5f602b796dc2ecfa96f0e018c7fe4ecc7dcf190e0619f10220168dffa1d5bd5876518530c72fd3bff59337050949c9732dabcfaeef7533de44012103959e3af1e6ddb01d6ac54966cda59464ab27fcaf34b0dca6df02f75d3df7668800000000

執(zhí)行后返回的結(jié)果是交易ID的十六進(jìn)制值:

24cd5619a366ad6a3a34a29766fd5f82c39657bc15dcfdcd4d7363a65f401c8b
2.7 查看交易詳情

至此整個交易的聲明周期就完成了,我們可以通過gettransaction來查看,上一步完成交易的詳情:

gettransaction 24cd5619a366ad6a3a34a29766fd5f82c39657bc15dcfdcd4d7363a65f401c8b

得到詳情結(jié)果如下:

{
  "amount": -0.00200000,
  "fee": -0.01698328,
  "confirmations": 1,
  "blockhash": "000000000000006715d295c34b2896d0c28f67a092869610200684e45fdd3ad9",
  "blockindex": 1,
  "blocktime": 1558762656,
  "txid": "24cd5619a366ad6a3a34a29766fd5f82c39657bc15dcfdcd4d7363a65f401c8b",
  "walletconflicts": [
  ],
  "time": 1558762586,
  "timereceived": 1558762586,
  "bip125-replaceable": "no",
  "details": [
    {
      "address": "2NBn87R8AAwtXUNmmFULvDhmPyeka1X7rRD",
      "category": "send",
      "amount": -0.00100000,
      "vout": 0,
      "fee": -0.01698328,
      "abandoned": false
    },
    {
      "address": "2NBJdr34cWkdr31rQRRMvcFYAg7kM8wTiNB",
      "category": "send",
      "amount": -0.00100000,
      "label": "like you",
      "vout": 1,
      "fee": -0.01698328,
      "abandoned": false
    }
  ],
  "hex": "020000000001013fb7fb27e77e579053023b52874a3e50005ab320f05d111fa220805c0afa1f81010000001716001462fab42642cbfe84c69a9e17fcb6c1ae27f63748ffffffff02a08601000000000017a914cb4a40c6ccaf652cc9a6459047494359c3ff25d787a08601000000000017a914c6176d6f78b0205a83bf4bbc516a23dc00a4ca64870247304402207fbd59f6e806dc1aab5f602b796dc2ecfa96f0e018c7fe4ecc7dcf190e0619f10220168dffa1d5bd5876518530c72fd3bff59337050949c9732dabcfaeef7533de44012103959e3af1e6ddb01d6ac54966cda59464ab27fcaf34b0dca6df02f75d3df7668800000000"
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/24699.html

相關(guān)文章

  • 區(qū)塊筆記(2)直觀感受比特

    摘要:書接上回區(qū)塊鏈筆記基礎(chǔ)概念掃盲,我們討論了關(guān)于比特幣以及區(qū)塊鏈的許多基礎(chǔ)概念,可能通過我略帶類比的描述,讓你初步有了一些概念,但是對于一個比特幣到底長什么樣以及如何使用比特幣進(jìn)行交易可能還不是很清楚,說的直白點(diǎn)就是聽過豬叫,但沒吃過豬肉。 解惑是每個人都在走的一條路,可誰又能解這漫漫無期呢?路上總是麻醉的人多,釋懷的人少。 書接上回區(qū)塊鏈筆記(1)基礎(chǔ)概念掃盲,我們討論了關(guān)于比特幣以及...

    DrizzleX 評論0 收藏0
  • 比特入門筆記

    摘要:也就是說,比特幣是一個完全出于社區(qū)共識的貨幣。所謂全稱為,它是比特幣交易的基本單位。根據(jù)比特幣的協(xié)議,一個區(qū)塊的大小是而一筆交易大概是,因此一個區(qū)塊大概可以包含筆交易。 誕生 比特幣誕生于 2008 年,一個網(wǎng)名為中本聰?shù)娜耍岢隽艘粋€設(shè)想: 創(chuàng)造一種不受政府或任何組織控制的貨幣 比特幣的本質(zhì)就是一串?dāng)?shù)字,沒有任何資產(chǎn)支持(現(xiàn)行貨幣背后都是國家或銀行提供資產(chǎn)支持)。也就是說,比特幣是一...

    Loong_T 評論0 收藏0
  • 一個比特交易完整流程

    摘要:本文解釋了比特幣交易的內(nèi)容,目的和結(jié)果。本文底部的信息圖提供了從錢包到區(qū)塊鏈的整個比特幣交易流程的全面說明。在文本中使用的任何地方是比特幣交易的縮寫。目的比特幣交易的目的是將一定數(shù)量的比特幣的所有權(quán)轉(zhuǎn)移到比特幣地址。 本文解釋了比特幣交易的內(nèi)容,目的和結(jié)果。下面的解釋適用于新手和中級比特幣用戶。 作為加密貨幣用戶,你需要熟悉交易雛形——為了你對這種不斷發(fā)展的創(chuàng)新有信心,以及作為理解新興...

    My_Oh_My 評論0 收藏0
  • 區(qū)塊筆記(1)基礎(chǔ)概念掃盲

    摘要:區(qū)塊鏈元年年,一個叫做中本聰?shù)纳衩刈骷野l(fā)表了一封名為的白皮書,奠定了比特幣的基礎(chǔ),也完全改變了我們看待和理解貨幣的方式。 正如民謠像一杯酒,有故事的人聽不得。深夜失眠的我,無意翻起中本聰?shù)陌灼妥⒍藷o眠。今夜的我只醉心于技術(shù),別問是真是假。 這是一篇關(guān)于區(qū)塊鏈基礎(chǔ)的筆記,涉及了我認(rèn)為對于初學(xué)者來說,想要進(jìn)一步深入前需要了解的最重要的幾個概念,概括如下圖:showImg(https...

    The question 評論0 收藏0
  • 區(qū)塊名詞解釋

    摘要:區(qū)塊鏈以比特幣為代表的數(shù)字貨幣應(yīng)用,其場景包括支付流通等貨幣職能。區(qū)塊鏈基本架構(gòu)區(qū)塊鏈超越貨幣金融的區(qū)塊鏈應(yīng)用。私有鏈區(qū)塊鏈?zhǔn)侵钙鋵懭霗?quán)限僅在一個組織手里的區(qū)塊鏈。以太坊是可編程的區(qū)塊鏈。有效的區(qū)塊經(jīng)過全網(wǎng)絡(luò)的共識后會被追加到主區(qū)塊鏈中。 區(qū)塊鏈1.0 ??以比特幣為代表的數(shù)字貨幣應(yīng)用,其場景包括支付、流通等貨幣職能。 區(qū)塊鏈1.0基本架構(gòu)showImg(https://segment...

    evin2016 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<