docker
1.備份映象: docker save IMAGE_ID > XXX-1.1.tar.gz
2.映象匯入: docker load < xxx-1.1.tar.gz
3. 檢視容器的後10行日誌 docker logs -f -t --tail 10 orderer.example.com
docker-compose 配置問題:
# the following setting starts chaincode containers on the same
# bridge network as the peers
# https://docs.docker.com/compose/networking/
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
networkmode 的命名方式是以當前的資料夾目錄加上_default,
在這個資料夾下的所有啟動檔案都會在這個網路裡面。
要注意一點:要保持配置檔案的版本號一致:yaml檔案裡的版本號 version:2,
如果沒有配置版本號,預設的不是version:2,CORE_VM_DOCKER_NETWORKMODE的
生成規則就不是資料夾名+"_default",在這個資料夾下單獨啟動的某個服務,
就會出現啟動容器不在同一個網路裡面,從而出現連線超時的問題。
fabric 的事件監聽
業務事件 setevent(): 當交易被記賬節點寫入賬本之後,就會觸發該事件。
個人不是很理解這個事件的具體應用場景,因為只能通過這個事件獲取到交易被寫入賬本了,
並不知道能獲取當前交易是否是有效的,從而不能根據這個事件去做相對應的邏輯處理。
系統事件:block/trancastion:
DEMO啟動命令:
./block-listener -events-address=peer0.org1.example.com:7053
-events-mspdir=$GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
-events-mspid=Org1MSP
啟動一個客戶端,在客戶端進行監聽,當客戶端接收到監聽事件的回撥資訊,
解析訊息裡的區塊的交易內容,從而判斷每筆交易是否有效。
當區塊被驗證為合法的,並且已經成功的寫入了檔案,索引資料庫以及更新了世界狀態之後,
就會觸發系統事件。