代碼地址:https://git.chainmaker.org.cn/users/chainmaker/projects(賬號需要注冊)
長安鏈項目集合.png
長安鏈底層核心代碼,由rpc接口、交易池、共識、合約引擎等模塊構成,也是各區塊鏈平臺的核心優勢點,也是我們判斷其平臺能力的主要評估點??傊痪湓?灰常重要。
區塊鏈瀏覽器,可用來展示區塊鏈的鏈個數、區塊高度、區塊內容、部署的合約個數、總交易數等等,相當于對整個區塊鏈系統的profile,由于我們還沒有進行深入研究,先放上一張對比照片fabric的~
對比照片.png
根據配置文件生成證書體系,該內容需要系統講解,簡單來講:區塊鏈系統不認識你,只認識密碼學,你只能用公鑰、證書等來證明你的身份。
初學者的福音,這里的文章介紹是比較成體系的,由于整個項目在快速迭代,會有描述與代碼版本不相符的地方,但基本不影響我們對他的理解,同時根據commit情況看代碼的Readme是會更新的,當文檔有問題時不妨先讀下所查模塊的Readme。
訪問區塊鏈底層的sdk,可以執行壓縮證書上鏈、合約管理、交易管理、查詢等操作。
長安鏈通用組件庫,chainmaker-go
會依賴該模塊,由于長安鏈大部分模塊都是用golang寫的,common的高度封裝為其他服務提供基礎服務。也就是chainmaker go 與
common是依賴關系,在版本管理上使用的是submodule方式管理。
長安鏈的proto庫,可通過proto文件生成跨語言的rpc調用及統一的數據結構。
1)筆者軟件環境
MacOS Catalina 10.15.7
go1.15
目前來看長安鏈對于linux系支持的較好,如果有同學使用linux不用擔心兼容性問題。
2)集群部署
參照文檔:https://git.chainmaker.org.cn/chainmaker/chainmaker-docs/-/blob/master/ChainMaker_Deploy_Manual.md
在啟動集群時如果使用非normal方式啟動,則使用tmux命令
Mac: brew install tmuxundefined Centos:yum install tmux
git clone --recurse-submoduleshttps://git.chainmaker.org.cn/chainmaker/chainmaker-go.gitundefined cd chainmaker-go/toolsundefined git clone --recurse-submoduleshttps://git.chainmaker.org.cn/chainmaker/chainmaker-cryptogen.git
筆者所用版本chainmaker-go: commit a979e212910450adfa352c4282e807d0ec7bd7be
cd chainmaker-go/tools/chainmaker-cryptogenundefined make
cd chainmaker-go/scriptsundefined ./prepare.sh 4 1 ## 參數4代表節點數量(和組織數量一致),1代表鏈數量
這里如果使用的是Mac電腦會報錯,因為Mac默認的sed版本不是gnu的,這里可以修改一下prepare.sh文件。
修改位置.png
修改內容(可復制):
num=$(sed -n "/seeds/=" $CONFIG_TPL_PATH/chainmaker.yml)
for ((k = $NODE_CNT; k > 0; k = k - 1)); do
sed -i -e "${num} a\
- "/ip4/127.0.0.1/tcp/$(($P2P_PORT_PREFIX+$k))/p2p/{org${k}_peerid}"\
" node$i/chainmaker.yml
done
該操作后,會在 ../build
目錄下生成證書內容以及配置每個節點的配置文件內容。
cd chainmaker-go/scriptsundefined ./build_release.sh
cd chainmaker-go/scriptsundefined ./cluster_quick_start.sh normal #這里與參考鏈接不同,不帶normal參數會使用tmux終端復用能力,這里暫時不需要。
ps -ef | grep chainmaker
可以看到啟動4個節點,屬于4個組織
image.png
lsof -p 86650 | grep TCP
86650 為org1 節點進程號可以看到org1節點啟動3個端口監聽,其中
image.png
默認在`chainmaker-go/build/release/chainmaker-V1.0.0-wx-
org1.chainmaker.org/data/wx-org1.chainmaker.org`
默認在chainmaker-go/build/release/chainmaker-V1.0.0-wx-org1.chainmaker.org/log
本次操作按照參考文檔使用cmc工具,后續使用sdk再次操作合約。
cd chainmaker-go/tools/cmc
go mod download
go build
#拷貝sdk的配置文件和示例里cmc命令行需要使用的文件
cp -r ../sdk/testdata ./
rm -rf testdata/crypto-config
cp -r ../../build/crypto-config testdata/crypto-config
./cmc client contract user create
--admin-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.tls.key
--admin-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/admin1/admin1.tls.crt
--org-id=wx-org1.chainmaker.org
--chain-id=chain1
--client-crt-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/client1/client1.tls.crt
--client-key-file-paths=./testdata/crypto-config/wx-org1.chainmaker.org/user/client1/client1.tls.key
--byte-code-path=../../test/wasm/rust-asset-management-1.0.0.wasm
--contract-name=asset
--runtime-type=WASMER
--sdk-conf-path=./testdata/sdk_config.yml
--version=1.0
--sync-result=true
--params="{"issue_limit":"500000000","total_supply":"1000000000"}"
./cmc client contract user get
--sdk-conf-path ./testdata/sdk_config.yml
--contract-name asset --method total_supply
至此整個集群部署工作結束。
在上面的集群操作中涉及三個腳本prepare.sh、build_release.sh、cluster_quick_start.sh,這三個shell腳本通俗易懂,可清楚其證書生成方式及路徑、配置文件生成方式及路徑。
在實際業務使用中,會通過sdk來調用區塊鏈底層,下節將學習使用tinygo開發智能合約、編譯智能合約,使用go版本的SDK安裝、調用、查詢智能合約。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
qq郵箱上傳超大附件太慢怎么辦?您好,上傳附件的速度應該受到網絡速度的影響,否則可能是您的瀏覽器有問題。您也可以嘗試清除瀏覽器緩存。打開“瀏覽器工具”選項的“Internet屬性”,然后選擇“刪除緩存”。也可以擴展QQ郵箱容量,登錄網頁郵箱,在郵箱首頁右側選擇我的信息郵箱容量。然后單擊“免費擴展”以增加郵箱容量。我希望我能幫助你。非常感謝。發送郵件添加附件老是失敗或者很慢怎么辦?您是否曾經對以下情...
開發一個app有多難?先說一點,我是前端工程師,所以開發app使用的是H5的東西,不是原生安卓和IOS,當然還有個很火熱的Flutter,雖然沒完全投入使用。所以我以下說的只針對前端的想開發app的朋友。當然我也剛開發了幾個,還有很多經驗不足,如果寫的有問題希望指正。其實我做開發剛剛一年多的時間,說實話我感覺如果只是開發市面上已經有的東西,還是相對容易的,現在有很多成熟的框架,有很不錯的api借鑒...
麻煩分析一下小學,泡桐樹小學西區,青羊實驗附???的家長們,你們好。泡小西區和青陽實驗小學都是爆炸嚴重的小學。今年26個班,跑小溪區17個班,青陽實驗小學12個班。而且這三所小學都在青羊區5中,對應的初中搖號結果完全一樣。因為它們都爆炸了,教師可以 我跟不上。個人覺得三個學校沒什么區別。順序必須是炮西、、青陽附小。你要根據最好的性價比來選擇最好砍價的房子。如果你在看習字香河 的房子,家庭和。;的支付...