
- App/CLI 端向指定的 endorser 節點發送
/Instantiate
請求;invoke
- endorser 接收到請求之後,如果相關 chaincode 存在,就會将請求發送到 chaincode 端,并執行相關函數(由于執行過程中,可能涉及到多次的 state 讀寫,而每一次讀寫都會涉及到底層 db 的操作,是以這個過程會涉及到多次與 endorser 節點的通信);
- chaincode 執行完畢之後,會發送消息給 endorser 節點,如果執行成功, endorser 節點就會封裝執行結果并對齊 endorse,并把結果傳回給 App/CLI 端;
- App/CLI 端收到 endorser 節點的執行結果後,會将交易(包含上一步傳回的讀寫集)發送給 order 節點
- order 節點會将若幹交易進行排序和打包成 block,發送到 commiter 節點
- commiter 節點校驗各個節點的交易
- 驗證通過,同步區塊,寫入狀态資料庫,交易完成。
交易的本質,其實就是一次 chaincode 調用。