# 閮ㄧ讲PK璐︽埛妯″紡鐨勯摼 ## 閫氳繃鍛戒护琛屽惎鍔≒K妯″紡鐨勯摼 ### 鐜渚濊禆 #### 纭欢鐜 | 閰嶇疆 | 鏈€浣庨厤缃� | 鎺ㄨ崘閰嶇疆 | | ---- | -------- | -------- | | CPU | 1.5GHz | 2.4GHz | | 鍐呭瓨 | 8GB | 16GB | | 鏍稿績 | 4鏍� | 8鏍� | | 甯﹀ | 2Mb | 10Mb | #### 杞欢鐜 褰撳墠鏂囨。鍦╟entos7.6鎿嶄綔涓嬪畬鎴愶紝浠ヤ笅涓烘湰娆℃紨绀烘墍闇€鐨勪緷璧栵紝杞欢鍒楄〃濡備笅锛� | 鍚嶇О | 鐗堟湰 | 鎻忚堪 | 鏄惁蹇呴』 | | --------------------------------------------- | ----- | ------------------------------------------------------------ | -------- | | git | / | 婧愮爜绠$悊 | 鏄� | | golang | 1.16-1.19 | 缂栬瘧鐜锛堥渶淇敼鍥藉唴浠g悊锛� | 鏄� | | gcc | 7.3+ | 缂栬瘧鐜渚濊禆 | 鏄� | | glibc | 2.18 | 鏅鸿兘鍚堢害鎵ц鐜渚濊禆 | 鏄� | | tmux | / | 榛樿蹇€熷惎鍔ㄥ懡浠や緷璧� | 鍚� | | wasmer杩愯鏃跺簱 **libwasmer_runtime_c_api.so** | / | https://git.chainmaker.org.cn/chainmaker/vm-wasmer/-/tree/master/wasmer-go/packaged/lib 鐩綍涓嬶紝鎵惧埌瀵瑰簲閾惧垎鏀殑搴擄紝灏嗚搴撹矾寰勬坊鍔犺嚦绯荤粺PATH鐜鍙橀噺涓�<br>鍚姩鑴氭湰榛樿鍖呭惈锛屽崟鐙惎鍔ㄩ渶鍔犱笂濡備笅閰嶇疆锛�<br>cd deployPath/lib <br>cp xxx/main/libwasmer_runtime_c_api.so libwasmer.so<br>export LD_LIBRARY_PATH=deployPath/lib:$LD_LIBRARY_PATH | 鏄� | ##### git 涓嬭浇鍦板潃锛歔https://git-scm.com/downloads](https://git-scm.com/downloads) 瀹夎姝ラ锛岃鍙傜湅锛歔https://git-scm.com/book/en/v2/Getting-Started-Installing-Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) ##### golang > 鐗堟湰涓�1.16-1.19 涓嬭浇鍦板潃锛歔https://golang.org/dl/](https://golang.org/dl/) 瀹夎姝ラ锛岃鍙傜湅锛歔https://golang.org/doc/install](https://golang.org/doc/install) ##### gcc 1. 妫€鏌� gcc 鐗堟湰 ```bash gcc --version ``` 鏄剧ず缁撴灉鑻� < 7.3锛屽垯鎵ц涓嬮潰姝ラ鍗囩骇 2. 鍗囩骇 gcc ```bash sudo yum install centos-release-scl sudo yum install devtoolset-7-gcc* scl enable devtoolset-7 bash ``` 娉ㄦ剰锛氱涓夋潯鎸囦护`scl enable devtoolset-7 bash` 鍙槸鍦ㄥ綋鍓嶄細璇濅腑鍗囩骇浜唃cc锛屽鏋滄兂姣忔鐧诲綍gcc鑷姩鍗囩骇锛屽彲浠ユ妸`scl enable devtoolset-7 bash` 鏀惧湪` ~/.bash_profile` 鏂囦欢涓€� ### 鐜鎼缓 涓嬮潰灏嗕粙缁峘浣跨敤鑴氭湰鎼缓`鎼缓鐜銆� <span id="runUseScripts"></span> > 閫傜敤浜巂Linux`銆乣MacOS` #### 婧愮爜涓嬭浇 浠嶽闀垮畨閾惧畼缃慮(https://chainmaker.org.cn/)涓嬭浇婧愮爜锛歔https://git.chainmaker.org.cn/chainmaker/chainmaker-go](https://git.chainmaker.org.cn/chainmaker/chainmaker-go) > 褰撳墠涓虹鏈変粨搴擄紝闇€瑕佸厛杩涜璐﹀彿娉ㄥ唽 - 涓嬭浇`chainmaker-go`婧愮爜鍒版湰鍦� ```bash $ git clone -b v3.0.0 --depth=1 https://git.chainmaker.org.cn/chainmaker/chainmaker-go.git ``` - 涓嬭浇`璇佷功鐢熸垚宸ュ叿`婧愮爜鍒版湰鍦� ```bash $ git clone -b v3.0.0 --depth=1 https://git.chainmaker.org.cn/chainmaker/chainmaker-cryptogen.git ``` #### 婧愮爜缂栬瘧 - 缂栬瘧璇佷功鐢熸垚宸ュ叿 ```bash $ cd chainmaker-cryptogen $ make ``` #### 閰嶇疆鏂囦欢鐢熸垚 - 灏嗙紪璇戝ソ鐨刞chainmaker-cryptogen`锛岃蒋杩炴帴鍒癭chainmaker-go/tools`鐩綍 ```bash # 杩涘叆宸ュ叿鐩綍 $ cd chainmaker-go/tools # 杞繛鎺hainmaker-cryptogen鍒皌ools鐩綍涓� $ ln -s ../../chainmaker-cryptogen/ . ``` #### 璐︽埛鐢熸垚 - 杩涘叆chainmaker-go/scripts鐩綍锛屾墽琛宲repare_pk.sh鑴氭湰鐢熸垚鍗曢摼4鑺傜偣闆嗙兢閰嶇疆锛屽瓨浜庤矾寰刢hainmaker-go/build涓� - prepare_pk.sh鑴氭湰鏀寔鐢熸垚4/7/10/13/16鑺傜偣鍏閽ュ拰閰嶇疆 ``` # 杩涘叆鑴氭湰鐩綍 $ cd ../scripts # 鏌ョ湅鑴氭湰甯姪 $ ./prepare_pk.sh -h Usage: prepare_pk.sh node_cnt(4/7/10/13/16) chain_cnt(1-4) p2p_port(default:11301) rpc_port(default:12301) eg1: prepare_pk.sh 4 1 eg2: prepare_pk.sh 4 1 11301 12301 # 鐢熸垚鍗曢摼4鑺傜偣闆嗙兢鐨勫瘑閽ュ拰閰嶇疆 $ ./prepare_pk.sh 4 1 begin check params... begin generate keys, cnt: 4 input consensus type (1-TBFT(default),5-DPOS): input log level (DEBUG|INFO(default)|WARN|ERROR): input hash type (SHA256(default)|SM3): enable docker vm (YES|NO(default)) config node total 4 begin generate node1 config... begin generate node2 config... begin generate node3 config... begin generate node4 config... # 鏌ョ湅鐢熸垚濂界殑鑺傜偣瀵嗛挜鍜岄厤缃� $ tree -L 3 ../build/ ../build/ 鈹溾攢鈹€ config 鈹� 鈹溾攢鈹€ node1 鈹� 鈹� 鈹溾攢鈹€ admin 鈹� 鈹� 鈹溾攢鈹€ chainconfig 鈹� 鈹� 鈹溾攢鈹€ chainmaker.yml 鈹� 鈹� 鈹溾攢鈹€ log.yml 鈹� 鈹� 鈹溾攢鈹€ node1.key 鈹� 鈹� 鈹溾攢鈹€ node1.nodeid 鈹� 鈹� 鈹溾攢鈹€ node1.pem 鈹� 鈹� 鈹斺攢鈹€ user 鈹� 鈹溾攢鈹€ node2 鈹� 鈹� 鈹溾攢鈹€ admin 鈹� 鈹� 鈹溾攢鈹€ chainconfig 鈹� 鈹� 鈹溾攢鈹€ chainmaker.yml 鈹� 鈹� 鈹溾攢鈹€ log.yml 鈹� 鈹� 鈹溾攢鈹€ node2.key 鈹� 鈹� 鈹溾攢鈹€ node2.nodeid 鈹� 鈹� 鈹溾攢鈹€ node2.pem 鈹� 鈹� 鈹斺攢鈹€ user 鈹� 鈹溾攢鈹€ node3 鈹� 鈹� 鈹溾攢鈹€ admin 鈹� 鈹� 鈹溾攢鈹€ chainconfig 鈹� 鈹� 鈹溾攢鈹€ chainmaker.yml 鈹� 鈹� 鈹溾攢鈹€ log.yml 鈹� 鈹� 鈹溾攢鈹€ node3.key 鈹� 鈹� 鈹溾攢鈹€ node3.nodeid 鈹� 鈹� 鈹溾攢鈹€ node3.pem 鈹� 鈹� 鈹斺攢鈹€ user 鈹� 鈹斺攢鈹€ node4 鈹� 鈹溾攢鈹€ admin 鈹� 鈹溾攢鈹€ chainconfig 鈹� 鈹溾攢鈹€ chainmaker.yml 鈹� 鈹溾攢鈹€ log.yml 鈹� 鈹溾攢鈹€ node4.key 鈹� 鈹溾攢鈹€ node4.nodeid 鈹� 鈹溾攢鈹€ node4.pem 鈹� 鈹斺攢鈹€ user 鈹溾攢鈹€ crypto-config 鈹� 鈹溾攢鈹€ node1 鈹� 鈹� 鈹溾攢鈹€ admin 鈹� 鈹� 鈹溾攢鈹€ node1.key 鈹� 鈹� 鈹溾攢鈹€ node1.nodeid 鈹� 鈹� 鈹溾攢鈹€ node1.pem 鈹� 鈹� 鈹斺攢鈹€ user 鈹� 鈹溾攢鈹€ node2 鈹� 鈹� 鈹溾攢鈹€ admin 鈹� 鈹� 鈹溾攢鈹€ node2.key 鈹� 鈹� 鈹溾攢鈹€ node2.nodeid 鈹� 鈹� 鈹溾攢鈹€ node2.pem 鈹� 鈹� 鈹斺攢鈹€ user 鈹� 鈹溾攢鈹€ node3 鈹� 鈹� 鈹溾攢鈹€ admin 鈹� 鈹� 鈹溾攢鈹€ node3.key 鈹� 鈹� 鈹溾攢鈹€ node3.nodeid 鈹� 鈹� 鈹溾攢鈹€ node3.pem 鈹� 鈹� 鈹斺攢鈹€ user 鈹� 鈹斺攢鈹€ node4 鈹� 鈹溾攢鈹€ admin 鈹� 鈹溾攢鈹€ node4.key 鈹� 鈹溾攢鈹€ node4.nodeid 鈹� 鈹溾攢鈹€ node4.pem 鈹� 鈹斺攢鈹€ user 鈹斺攢鈹€ crypto_config.yml ``` #### 缂栬瘧鍜屽畨瑁呭寘鍒朵綔 - 鐢熸垚璐﹀彿锛坧repare.sh鑴氭湰锛夊悗鎵цbuild_release.sh鑴氭湰锛屽皢缂栬瘧chainmaker-go妯″潡锛屽苟鎵撳寘鐢熸垚瀹夎锛屽瓨浜庤矾寰刢hainmaker-go/build/release涓� ``` $ ./build_release.sh $ tree ../build/release/ ../build/release/ 鈹溾攢鈹€ chainmaker-v3.0.0-wx-org1.chainmaker.org-20210406194833-x86_64.tar.gz 鈹溾攢鈹€ chainmaker-v3.0.0-wx-org2.chainmaker.org-20210406194833-x86_64.tar.gz 鈹溾攢鈹€ chainmaker-v3.0.0-wx-org3.chainmaker.org-20210406194833-x86_64.tar.gz 鈹溾攢鈹€ chainmaker-v3.0.0-wx-org4.chainmaker.org-20210406194833-x86_64.tar.gz 鈹斺攢鈹€ crypto-config-20210406194833.tar.gz ``` #### 鍚姩鍜屽仠姝㈤摼 - 鎵цcluster_quick_start.sh鑴氭湰锛屼細瑙e帇鍚勪釜瀹夎鍖咃紝璋冪敤bin鐩綍涓殑start.sh鑴氭湰锛屽惎鍔╟hainmaker鑺傜偣 ``` $ ./cluster_quick_start.sh normal ``` - 鍚姩鎴愬姛鍚庯紝灏�*.tar.gz澶囦唤锛屼互鍏嶄笅娆″惎鍔ㄥ啀娆¤В鍘嬬缉鏃舵枃浠惰瑕嗙洊 ``` $ mkdir -p ../build/bak $ mv ../build/release/*.tar.gz ../build/bak ``` 鑻ラ渶瑕佸叧闂泦缇わ紝浣跨敤鑴氭湰锛� ``` $ ./cluster_quick_stop.sh ``` #### 鏌ョ湅鑺傜偣鏄惁瀛樺湪 - 鏌ョ湅杩涚▼ ``` $ ps -ef|grep chainmaker | grep -v grep 25261 2146 4 19:55 pts/20 00:00:01 ./chainmaker start -c ../config/wx-org1.chainmaker.org/chainmaker.yml 25286 2146 4 19:55 pts/20 00:00:01 ./chainmaker start -c ../config/wx-org2.chainmaker.org/chainmaker.yml 25309 2146 4 19:55 pts/20 00:00:01 ./chainmaker start -c ../config/wx-org3.chainmaker.org/chainmaker.yml 25335 2146 4 19:55 pts/20 00:00:01 ./chainmaker start -c ../config/wx-org4.chainmaker.org/chainmaker.yml ``` - 鏌ョ湅绔彛 ``` $ netstat -lptn | grep 1230 tcp6 0 0 :::12301 :::* LISTEN 25261/./chainmaker tcp6 0 0 :::12302 :::* LISTEN 25286/./chainmaker tcp6 0 0 :::12303 :::* LISTEN 25309/./chainmaker tcp6 0 0 :::12304 :::* LISTEN 25335/./chainmaker ``` - 鏌ョ湅鏃ュ織 ``` $ cat ../build/release/*/bin/panic.log $ cat ../build/release/*/log/system.log $ cat ../build/release/*/log/system.log |grep "ERROR\|put block\|all necessary" //鑻ョ湅鍒癮ll necessary peers connected鍒欒〃绀鸿妭鐐瑰凡缁忓噯澶囧氨缁€� ``` #### 閮ㄧ讲/璋冪敤鏅鸿兘鍚堢害 鍚姩鎴愬姛鍚庯紝鍙繘琛岄儴缃�/璋冪敤鍚堢害娴嬭瘯锛屼互楠岃瘉閾炬槸鍚︽甯歌繍琛屻€� 姝ゅ鎻愪緵绀轰緥鍚堢害鐨勫凡缂栬瘧涔嬪悗鐨勫悎绾︽枃浠讹紝鍙洿鎺ヤ笅杞芥枃浠跺苟閮ㄧ讲鍚堢害銆� - Rust锛歔rust-fact-2.0.0.wasm](https://git.chainmaker.org.cn/chainmaker/chainmaker-go/-/raw/v2.2.0/test/wasm/rust-fact-2.0.0.wasm) ##### CMC宸ュ叿閰嶇疆 浣跨敤闀垮畨閾惧懡浠よ宸ュ叿cmc杩涜娴嬭瘯锛岃缁嗘暀绋嬭瑙乕鍛戒护琛屽伐鍏穚k](../dev/鍛戒护琛屽伐鍏穚k.html#浜ゆ槗鍔熻兘) 鍏朵腑锛宑mc宸ュ叿閰嶇疆鏂囦欢sdk_config_pk.yaml闇€瑕佽繘琛岀浉搴斾慨鏀癸紝涓昏淇敼浠ヤ笅閰嶇疆: - 瀹㈡埛绔閽ワ細user_sign_key_file_path ```yaml chain_client: # 閾綢D chain_id: "chain1" # 瀹㈡埛绔敤鎴蜂氦鏄撶鍚嶇閽ヨ矾寰� user_sign_key_file_path: "./testdata/crypto-config/node1/admin/admin1/admin1.key" # 绠$悊鍛�1绉侀挜 # 绛惧悕浣跨敤鐨勫搱甯岀畻娉曪紝鍜岃妭鐐逛繚鎸佷竴鐩� crypto: hash: SHA256 auth_type: public # 榛樿鏀寔TimestampKey锛屽鏋滃紑鍚痚nableNormalKey鍒欎娇鐢∟ormalKey enable_normal_key: false nodes: - # 鑺傜偣鍦板潃锛屾牸寮忎负锛欼P:绔彛:杩炴帴鏁� node_addr: "127.0.0.1:12301" # 鑺傜偣杩炴帴鏁� conn_cnt: 10 - # 鑺傜偣鍦板潃锛屾牸寮忎负锛欼P:绔彛:杩炴帴鏁� node_addr: "127.0.0.1:12302" # 鑺傜偣杩炴帴鏁� conn_cnt: 10 archive: # 鏁版嵁褰掓。閾惧瀛樺偍鐩稿叧閰嶇疆 type: "mysql" dest: "root:123456:localhost:3306" secret_key: xxx rpc_client: max_receive_message_size: 16 # grpc瀹㈡埛绔帴鏀舵秷鎭椂锛屽厑璁稿崟鏉essage澶у皬鐨勬渶澶у€�(MB) max_send_message_size: 16 # grpc瀹㈡埛绔彂閫佹秷鎭椂锛屽厑璁稿崟鏉essage澶у皬鐨勬渶澶у€�(MB) ``` 娉細鐢变簬鎴戜滑浣跨敤绠$悊鍛樿处鎴疯繘琛屾祴璇曪紝鎵€浠ser_sign_key_file_path闇€瑕佹寚瀹氱鐞嗗憳绉侀挜 #### 浣跨敤闀垮畨閾維DK杩涜娴嬭瘯 - 閫氳繃闀垮畨閾維DK杩涜閮ㄧ讲/璋冪敤锛岃鎯匸SDK浣跨敤璇存槑绔犺妭](../sdk/GoSDK浣跨敤璇存槑.md) - 闇€瑕佸皢SDK鎵€闇€鐨勭浉鍏宠瘉涔︽浛鎹㈡垚锛屼笂鏂囨墍鐢熸垚鐨勮瘉涔︼紝鐒跺悗杩涜鎿嶄綔銆� ## 閫氳繃绠$悊鍙板惎鍔╬k妯″紡鐨勯摼 #### 鐧诲綍 <img loading="lazy" src="../images/ManagementLogin.png" style="zoom:50%;" /> - 绉佹湁鍖栭儴缃叉湰骞冲彴鏃朵細鐢熸垚鐨勫搴旂殑admin璐﹀彿锛岄粯璁ゅ瘑鐮佷负a123456 #### 鏂板鑺傜偣璐︽埛 <img loading="lazy" src="../images/ManagementNodeAccount.png" style="zoom:50%;" /> - 濉啓璐︽埛澶囨敞鍚� - 閫夋嫨鑺傜偣璐︽埛 - 鏀寔鐢宠鍥藉瘑鍜岄潪鍥藉瘑涓ょ璇佷功銆� #### 鏂板鐢ㄦ埛璐︽埛 <img loading="lazy" src="../images/ManagementUserAccount.png" style="zoom:50%;" /> - 濉啓璐︽埛澶囨敞鍚� - 閫夋嫨鐢ㄦ埛璐︽埛 - 鏀寔鐢宠鍥藉瘑鍜岄潪鍥藉瘑涓ょ璇佷功銆� #### 鏂板缓鍖哄潡閾� <img loading="lazy" src="../images/ManagementPKAddChain1.png" style="zoom:50%;" /> <img loading="lazy" src="../images/ManagementPKAddChain2.png" style="zoom:50%;" /> <img loading="lazy" src="../images/ManagementPKAddChain3.png" style="zoom:50%;" /> - 閫夋嫨鍏挜妯″紡 - 閾鹃厤缃枃浠跺弬鏁拌瀹� - 姝ゅ鐢ㄤ簬鏂板閾鹃厤缃枃浠讹紝鐩墠鏀寔鑷畾涔夐摼鐨刬d銆佸悕绉般€佸尯鍧楁渶澶у閲忥紝鍑哄潡闂撮殧銆佷氦鏄撹繃鏈熸椂闀匡紝浠ュ強鍏辫瘑閰嶇疆銆� - 鐩墠鏀寔閰嶇疆TBFT銆丏POS绛夊叡璇嗐€� - 鐢宠閾鹃厤缃枃浠跺墠锛岃鍏堢‘淇濓紝鎵€闇€鐨勮妭鐐瑰拰鐢ㄦ埛璐︽埛宸茬粡鐢宠/瀵煎叆鏈鐞嗗钩鍙般€� - 鏀寔鏍规嵁闇€姹傞€夋嫨浣犺閮ㄧ讲鐨勯摼鎵€鏀寔鐨勮櫄鎷熸満绫诲瀷銆� - 鏀寔鍗曟満閮ㄧ讲鍜屽鏈洪儴缃诧紝璇锋纭~鍐欐墍瑕佷箣鍚庤閮ㄧ讲鍖哄潡閾捐妭鐐圭殑鏈哄櫒鎵€鍦ㄧ殑ip锛屽苟纭繚绔彛涓嶅啿绐併€� - 濡傛灉寮€鍚姤閿欐棩蹇楅噰闆嗘湇鍔★紝鍒欏湪鎮ㄩ儴缃插埌閾捐繍琛岃繃绋嬩腑濡傛灉鍙戠敓寮傚父锛岀鐞嗗彴浼氭敹闆嗘姤閿欐棩蹇楋紝骞舵眹鎬诲睍绀猴紝鏂逛究瀹氫綅闂銆傚鏋滄偍寮€鍚簡鍙備笌闀垮畨閾炬敼杩涜鍒掞紝鍒欓噰闆嗗埌鐨勬姤閿欐棩蹇楋紝灏嗚嚜鍔ㄤ笂浼犵粰闀垮畨閾惧畼鏂瑰洟闃燂紝鏂逛究鍥㈤槦鎸佺画鏀硅繘浜у搧銆� #### 涓嬭浇閮ㄧ讲閾� <img loading="lazy" src="../images/ManagementPkDownloadChain.png" style="zoom:50%;" /> - 閮ㄧ讲鍖哄潡閾� - 涓嬭浇閾鹃厤缃互zip鍖呬负鍑嗭紝zip鍖呭寘鍚搴旂殑閾鹃厤缃枃浠跺拰閮ㄧ讲鑴氭湰 - 灏嗕笅杞界殑鍖呯Щ鍔ㄥ埌闇€瑕侀儴缃茬殑鏈哄櫒涓婂幓锛堝彲浠ヤ娇鐢╯cp杩涜绉诲姩锛� - 鎵ц`unzip`瑙e帇鎴恅release`鍖咃紝杩涘叆`release`鍖呮墽琛宍start.sh`杩涜鍚姩 #### 蹇€熻闃呴摼 <img loading="lazy" src="../images/ManagementPkSubscribe.png" style="zoom:50%;" /> - 閾鹃儴缃叉垚鍔熶箣鍚庡湪绠$悊鍙拌繘琛屽揩閫熻闃� - 鍏挜闇€瑕侀€夋嫨鍏挜妯″紡 #### 閮ㄧ讲/璋冪敤鍚堢害楠岃瘉閾炬槸鍚︽甯� 璁㈤槄鎴愬姛鍚庯紝鍙繘琛岄儴缃�/璋冪敤绀轰緥鍚堢害锛屼互妫€鏌ラ摼鍔熻兘鏄惁姝e父銆傞儴缃插悎绾︾殑浣跨敤鏁欑▼鍙瑙侊細[閮ㄧ讲绀轰緥鍚堢害](./閮ㄧ讲绀轰緥鍚堢害.md)銆�