1. 程式人生 > >區塊鏈智慧合約開發筆記——stateRoot,nonce值,Hyperledger Fabric,聯盟鏈智慧合約

區塊鏈智慧合約開發筆記——stateRoot,nonce值,Hyperledger Fabric,聯盟鏈智慧合約

問題1:為什麼要有stateRoot?

stateRoot指的是狀態樹根節點的Hash值。每個區塊上都包含這樣的一個狀態結點,方便節點間狀態的互相驗證,保證在交易的每個區塊且每時每刻,所有節點的狀態是一致的。

問題2:nonce值有什麼用?

交易中的Nonce值指的是from賬戶發出交易的次數,同一賬戶的交易會被依次確認。區塊中的nonce值是用於挖礦,這是為了證明工作量的無意義的值,這個值將決定挖礦的難度。而交易中的nonce值可以用於確認交易順序,防止雙花,撤銷pending中的交易,確定生成的合約地址。

為了防止交易重複進行,以太坊要求每筆交易必須有一個nonce數值。nonce值從0開始遞增,每傳送一筆交易,nonce便加1。只有當前面nonce值較小的交易處理完成之後才會處理後面nonce值較大的交易。

問題3:Hyperledger Fabric的特點,和Composer的關係?

Hyperledger Fabric是一個模組化的分散式賬本解決方案支撐平臺,提供高度的保密性、彈性、靈活性與可擴充套件性。它的目的是支援不同元件的可插入實現,並適應經濟系統中存在的複雜性。Hyperledger Fabric提出了一個獨特的高彈性且可擴充套件的體系結構,此結構使Fabric區別於其他區塊鏈解決方案。

Hyperledger Fabric聯盟鏈是chaincode,而Hyperledger Composer是chaincode中的chaincode。Hyperledger Composer是為了抽象出介面,可以和任何區塊鏈網路對聯,目前的開發狀況基本上是基於Hyperledger Fabric來實現的。Hyperledger Composer 是一組基於 JavaScript 的工具,可簡化並加速 Hyperledger Fabric 區塊鏈應用的建立過程。通過使用 Hyperledger Composer,業務所有者和開發人員可以快速建立鏈碼(業務邏輯)和區塊鏈應用。

問題4:聯盟鏈智慧合約 和 中心賬本的區別?

聯盟鏈是指其共識過程受到預選節點控制的區塊鏈,故聯盟鏈可以視為“部分去中心化”。而聯盟鏈智慧合約它具有事件驅動,自動執行,價值轉移等特點。與中心賬本對比,中心賬本過於中心化,出錯難以追溯,大額交易不可靠。

聯盟鏈智慧合約就是基於聯盟鏈設計的計算機程式,它也不是任何人都可以使用的,由聯盟鏈的持有者限定參加合約的使用者結點,不需要任何中介結構。中心賬本是記錄在唯一一箇中心的資料記錄,具有交易風險以及可信度問題。