8.安装合约

[复制链接]
查看805 | 回复0 | 2023-7-29 00:55:01 | 显示全部楼层 |阅读模式
CSDN资料地址:(152条消息) 1.hyperledger-fabric 资料整理_youth_ymh的博客-CSDN博客7 n8 {% @- v; |2 \2 b
https://blog.csdn.net/baidu_ymh/article/details/131537319?spm=1001.2014.3001.5501
' q1 Z9 c$ a. Y! e( ^知乎:https://zhuanlan.zhihu.com/p/641458419' F# ], Q" \. H/ s7 o
章节目录
; D. g( W8 b2 C1 L& y7 D1.hyperledger-fabric 介绍和资料整理 https://www.toutiao.com/article/7251935732179354150/* t7 N  }. ?6 G7 `% Y, l
2.服务环境准备 https://www.toutiao.com/article/7251937147132035623/
# `- H  Q- }$ b& ?3.安装fabric 二进制源码程序 https://www.toutiao.com/article/7251938220630753795/
  H  I1 M2 d. j: c& {4.生成fabric身份信息文件(证书)https://www.toutiao.com/article/7251940174950105633/
9 k9 [9 t5 m# b7 U5.生成系统通道初始区块文件 https://www.toutiao.com/article/7251940560347349542/0 n1 E6 S5 F' y+ w1 Y
6.启动配置网络节点 docker-compose启动文件 https://www.toutiao.com/article/7252140512931889676/
3 u  a7 X$ Q0 ?, B! |& ]7.将组织加入通道 https://www.toutiao.com/article/7252141528884265505/* W; u, E/ L. j  p& F, P& F  K
8.安装合约链码 https://www.toutiao.com/article/7252142449584521766/
( O- n; o+ `/ Y( I' M5 o$ Aconfigtx.yaml 详解 https://mp.toutiao.com/profile_v4/graphic/preview?pgc_id=7252143717228986918
3 k3 I, J7 |' A8 \# n0 t1 ?( Ecrypto-config.yaml配置详解 https://mp.toutiao.com/profile_v4/graphic/preview?pgc_id=72521439706698552354 A  w, S# |( T& G
: Z8 C! U$ D! k, I' {  k2 K* d
3 Z, ~$ r/ g6 z# \3 Y6 L' f
1.创建合约代码
6 C: Y$ t- Q! t- S( P9 g6 A( D; E5 D/ c) y
语言:java
# ~8 ^) l6 x7 Y' S, O& C9 o- ]4 I
% O, ^. e% Y- z8 ], O$ Q参考官网示例: https://mvnrepository.com/artifact/org.hyperledger.fabric-chaincode-java/fabric-chaincode-shim0 [# W/ r5 \& x7 O5 C( [: l
* ]  O% G: K' P( W. F3 O) R, |1 m' H; M
项目目录5 v% g- r8 q8 I( B7 L+ F2 |4 L. |
* c* F0 A2 k) T, H
8.安装合约-1.jpg
9 I& C' b, V% J5 {* r, i4 D
, ?7 V( X$ ^+ y, f) V
3.maven 打包9 c( R0 F) `0 e* y: v
  r/ \1 g1 I" r' l" B0 v+ y

% s  r5 F8 t  o# d: N& l1 F- ~2 [. K) d7 k) a  O1 k$ v
打包后target/下会生成chaincode.jar 包。
# U& e, A( U6 R! S3 Z1 I. g' U# u8 z: U4 k5 Y5 _; z

8 n' K$ A7 H5 O. a! ]* Z4.移动包到服务器9 A9 d) b1 }" l5 s% ~3 r

4 I" v$ z' u* _( S将合约代码里target\chaincode.jar和 META-INF 两个文件上传到服务器目录 /home/hyperledgerFabric/qkl_01/chaincode/fabric-java 下,没有目录请创建。' I# P, f/ W% L

2 d4 O% i* _5 h6 H/ A5 j
7 M3 y" H3 V4 e2 c5.设置环境变量% @" }5 |: D" z" H* e9 ]8 I. U
+ [2 I" T( e* c, \1 E& f
export PATH=/home/hyperledgerFabric/qkl_01/bin:$PATHexport FABRIC_CFG_PATH=/home/hyperledgerFabric/qkl_01/config/6.通过 lifecycle 命令打包成链码包  L0 H4 c& [3 K. p# X$ T  m" W  w
7 P$ w9 A7 ^$ H/ F6 c$ f$ H; @: \" a
lifecycle命令参数
. g) K' S  V# W. d; u3 x) M# d+ W. i! x  P: `
package : 打包后的链码包文件1 S3 z2 l0 v' x5 x

& X$ R5 E% c9 d- E4 N6 U$ Z--path : 需要打包的合约代码文件目录
6 M" m2 P5 E" j2 S; }  @
* e0 U9 C9 P: U--lang : 链码语言 java版本
5 B& s" P8 Q2 h& N! D+ D( J1 R9 u; B" z# ]& R
--label : 链码包名称id
9 o4 G- H+ K) ~/ |# k1 T( {peer lifecycle chaincode package fabcar.tar.gz --path /home/hyperledgerFabric/qkl_01/chaincode/fabric-java --lang java --label fabric-java7.安装链码0 o. G& [3 F& `$ |, Z

  ]! N+ x" L) \3 ?$ w进入链码包目录:
) r* I1 \' D3 Q; r2 ?: Z​cd /home/hyperledgerFabric/qkl_01/chaincode​
& R+ {! e& h: A, N+ `4 Q, M! D7 \6 ]  b8 w
7.1 Org1MSP 安装链码
: a1 l6 A' O* S  t
! d9 k% ]$ h; b1 g$ t4 ~export CORE_PEER_TLS_ENABLED=trueexport CORE_PEER_LOCALMSPID="Org1MSP"export CORE_PEER_TLS_ROOTCERT_FILE=/home/hyperledgerFabric/qkl_01/crypto-config/peerOrganizations/org1.ymh.com/peers/peer0.org1.ymh.com/tls/ca.crtexport CORE_PEER_MSPCONFIGPATH=/home/hyperledgerFabric/qkl_01/crypto-config/peerOrganizations/org1.ymh.com/users/[email protected]/mspexport CORE_PEER_ADDRESS=peer0.org1.ymh.com:2051#安装链码包---构建mavanpeer lifecycle chaincode install fabcar.tar.gz7.1.1 查看链码9 `0 H+ g' C0 B4 K; m+ z8 ?& d
& D" j! A. b& n4 F: N4 Q
#查询Org1MSP链码 Package ID
7 J7 B3 ?( D' |  F! y$ cpeer lifecycle chaincode queryinstalled( D" Z& v# g+ C5 e4 r

6 g' k: ~# k, N$ `' I8 O​​- }$ i7 b8 B; q6 M

, Q. ?& Z3 E/ Q% E1 G8 {- g* V# e
8.安装合约-2.jpg

. w5 E) M3 @2 Y. R) Q8 \2 M' X5 R) e& j- T5 j2 c
​​
6 Y7 P3 I4 w7 M8 z: p7.1.2 批准链码% M* y) _( n5 U; i
' |1 G0 y4 @2 I
#写入环境变量export CC_PACKAGE_ID=fabric-java:60d361c56b9bd73b69ecfc7caa434c56db41d99126d176835b74e79939fbbca4#Org1MSP批准链码peer lifecycle chaincode approveformyorg -o orderer0.ymh.com:2050 --ordererTLSHostnameOverride orderer0.ymh.com --channelID ymhchannel --name fabric-java --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile /home/hyperledgerFabric/qkl_01/crypto-config/ordererOrganizations/shineyue.com/orderers/orderer0.ymh.com/msp/tlscacerts/tlsca.ymh.com-cert.pem7.2 Org2MSP 安装链码
- d( K1 V' ^" B1 m0 ]& Y" p  g: I/ b! o5 n3 ]
export CORE_PEER_TLS_ENABLED=trueexport CORE_PEER_LOCALMSPID="Org2MSP"export CORE_PEER_TLS_ROOTCERT_FILE=/home/hyperledgerFabric/qkl_01/crypto-config/peerOrganizations/org2.ymh.com/peers/peer0.org2.ymh.com/tls/ca.crtexport CORE_PEER_MSPCONFIGPATH=/home/hyperledgerFabric/qkl_01/crypto-config/peerOrganizations/org2.ymh.com/users/[email protected]/mspexport CORE_PEER_ADDRESS=peer0.org2.ymh.com:3051#安装链码包---构建mavanpeer lifecycle chaincode install fabcar.tar.gz7.2.1 查看链码* a3 z3 m: l  P- }* I

- s  D) @7 c* D# {% k1 E#查询Org2MSP链码 Package IDpeer lifecycle chaincode queryinstalled
- j/ h1 q  A0 x7 d/ P$ W4 v" |" P
$ X6 W" P& v7 j- s. @9 u6 E6 s
+ z, y; b4 G+ X& a
8.安装合约-3.jpg

% _" p& _8 }, `" @6 I# p' j0 ~% o* b+ H6 }3 T8 |- V
$ H7 B( M' M  V% q' H; G2 i
7.2.2 批准链码" T. ?3 K$ f0 P" {2 l
* b1 G' F0 J3 q
#写入环境变量export CC_PACKAGE_ID=fabric-java:60d361c56b9bd73b69ecfc7caa434c56db41d99126d176835b74e79939fbbca4#Org2MSP批准链码peer lifecycle chaincode approveformyorg -o orderer0.ymh.com:2050 --ordererTLSHostnameOverride orderer0.ymh.com --channelID ymhchannel --name fabric-java --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile /home/hyperledgerFabric/qkl_01/crypto-config/ordererOrganizations/shineyue.com/orderers/orderer0.ymh.com/msp/tlscacerts/tlsca.ymh.com-cert.pem7.3检查链码
1 O' U& t- k7 d
( O$ P2 F/ D$ d" Epeer lifecycle chaincode checkcommitreadiness --channelID ymhchannel --name fabric-java --version 1.0 --sequence 1 --tls --cafile /home/hyperledgerFabric/qkl_01/crypto-config/ordererOrganizations/shineyue.com/orderers/orderer0.ymh.com/msp/tlscacerts/tlsca.ymh.com-cert.pem --output json7.4将链码提交到通道
( _. R7 O6 I' D% l4 U& f* d* D# _+ F
命令参数5 U6 P* B" G5 C. m
( G. f& s  r# d
--name : 链码名称
3 o. D' m+ p$ }& n1 Q
* z, {7 A3 Y, ?( m$ T: c* U, H--version : 链码版本
3 \' I. D' a! O! X: J  f, i5 d5 `) {/ r* X9 p* K4 M( u% H
--sequence : 升级序列号,从1开始,每次升级迭代累加1.
" j+ b) N. h) P$ Zpeer lifecycle chaincode commit -o orderer0.ymh.com:2050 --ordererTLSHostnameOverride orderer0.ymh.com --channelID ymhchannel --name fabric-java --version 1.0 --sequence 1 --tls --cafile /home/hyperledgerFabric/qkl_01/crypto-config/ordererOrganizations/shineyue.com/orderers/orderer0.ymh.com/msp/tlscacerts/tlsca.ymh.com-cert.pem --peerAddresses peer0.org1.ymh.com:2051 --tlsRootCertFiles /home/hyperledgerFabric/qkl_01/crypto-config/peerOrganizations/org1.ymh.com/peers/peer0.org1.ymh.com/tls/ca.crt --peerAddresses peer0.org2.ymh.com:3051 --tlsRootCertFiles /home/hyperledgerFabric/qkl_01/crypto-config/peerOrganizations/org2.ymh.com/peers/peer0.org2.ymh.com/tls/ca.crt7.5 确认链码定义已提交给通道
  b/ ^$ Q( C; ?# Y& C1 d' V4 P) b4 F" y7 s0 N" \2 ~$ A) Q3 r
peer lifecycle chaincode querycommitted --channelID ymhchannel --name fabric-java --cafile /home/hyperledgerFabric/qkl_01/crypto-config/ordererOrganizations/shineyue.com/orderers/orderer0.ymh.com/msp/tlscacerts/tlsca.ymh.com-cert.pem9 u, \* l5 g: V9 n: e8 H' L  M

! k% h9 A* C3 ]5 I2 v- K6 F8 ~$ v0 S* N& w# T+ l
8.安装合约-4.jpg
9 U. v8 i, u# k7 }5 J
! G1 A  x% L7 @! y4 O

- q, z6 `  `5 ^( M" s. U
7 D: q- g/ n1 z' U- i: T( I
- u, m2 M/ }2 C: M! h- Q0 z1 b( W
8 j4 G5 ~$ H1 q. {+ R, O链码安装完毕+ U, S" D4 g' k, G" ~: B
+ S; V% Z! _! H: x
4 G7 ~. [4 s+ J- s
8.链码测试
- Q6 @0 b$ R* i# @
$ V# d" S9 v$ A+ }- F参数
2 y2 J/ Q) R: x* y
) v) _' P# J* ?( f-C : 通道id
/ [. S  u/ @+ f. }- n' g6 \; F* c% V* u& |# \5 C
-n :链码名称
, h( @+ G$ D( Y
# e7 `1 Q' p. e* j1 G3 l-c : 合约参数(function - 合约方法名;Args- 参数,数组格式), V, r' C7 M+ C0 t+ w- Z
8.1 测试上链2 v3 C4 X- z, \- k9 P* f8 {' c

- X1 _/ T+ W, z# d. n/ E4 f" l7 Fpeer chaincode invoke -o orderer0.ymh.com:2050 --ordererTLSHostnameOverride orderer0.ymh.com --tls --cafile /home/hyperledgerFabric/qkl_01/crypto-config/ordererOrganizations/shineyue.com/orderers/orderer0.ymh.com/msp/tlscacerts/tlsca.ymh.com-cert.pem -C ymhchannel -n fabric-java --peerAddresses peer0.org1.ymh.com:2051 --tlsRootCertFiles /home/hyperledgerFabric/qkl_01/crypto-config/peerOrganizations/org1.ymh.com/peers/peer0.org1.ymh.com/tls/ca.crt --peerAddresses peer0.org2.ymh.com:3051 --tlsRootCertFiles /home/hyperledgerFabric/qkl_01/crypto-config/peerOrganizations/org2.ymh.com/peers/peer0.org2.ymh.com/tls/ca.crt -c '{"function":"ymhUpchain","Args":["唯一key" ,"参数2", "参数3" , "参数3" ]}'
; i1 Z1 H8 x  J/ Z" ]执行上链后提示:200 则成功
3 W9 `# i1 a& o, L( p+ [" N7 `6 I+ U1 p! G- }  _' [5 `

$ z7 c, O( \- K4 ~
6 B, d. x5 k& b1 Y  C
8.安装合约-5.jpg

6 O# ?* m- l9 E5 m5 e" x9 ?4 w5 _, m' p7 ~4 K- n# a( j0 W

/ }5 P" I9 m* q) @! [6 B' [& _! w$ i3 `# v* M  h0 L

. P- ^/ P& f+ ]2 l. X& X8.2 查看上链数据
1 z! ]; U( U& b/ y$ x4 ^
' g$ ]% {7 w0 b/ F! C% L6 |peer chaincode query -C ymhchannel -n fabric-java -c '{"Args":["queryUniversal" , "唯一key"]}'2 G% C* X: H% b# P" F
查询成功后,后台打印输出上链数据,数据格式为json。截图示例:' M, p! x; Y- d0 Q2 b
! `$ ?$ E3 ~( x$ C7 C6 d# R

0 G; `( |8 n. T/ L, o- |& y5 g
- o3 K) ]  S# I( N
8.安装合约-6.jpg
; U+ @! @" T. i% f. ~3 s: l

: e. v3 [$ O" J# E" D8 g/ ^; _8 Q( s: M2 n

  f; K1 t5 v5 b, }7 |2 }
8 p3 D+ e" {' b* R4 M: f9 通过CouchDb 数据库查看上链数据
6 c+ N0 [' r5 `1 F5 C
( n* i+ S5 F1 ~: }$ V! K0 Q, z* P/ Z& R
! |( Q" g) R1 U% \
访问地址: http://ip:5984/_utils/
. g% @9 o- M& s. u- O$ D/ m0 {) }( B4 O1 C0 i
用户密码:admin adminpw
7 K9 P( U2 @; d8 S9 t. O$ L/ U3 I0 X% C
请查看《6.启动配置网络节点 docker-compose启动文件》章节的5和6 小节目录配置,如下截图:9 d2 |% k. s. Z2 B; ~
* N9 b7 v' D6 G' C# |% g
. Q  g, B% W, z7 c2 r1 R" q

) q' x! J2 K3 x
8.安装合约-7.jpg

% K3 Z$ ?' v8 N! g, i1 b; P, e2 c. C; W5 ?# h
4 E* C7 I  h& J% n
* l- J! L9 \3 Z9 C
9 N. _- c2 L# S4 U6 y& ~

) G) O  M/ w7 ~4 g) q1 ~) {
8.安装合约-8.jpg

4 N" p5 G6 F& x/ F  |0 O/ W
$ g" O- q. j! ~) D
9 t* H- m1 X2 w5 t! R3 |. |8 Z( L
8 E$ V" T5 {; g" _
# R/ q6 }, Y) ^5 M6 d2 s  z: ]" m$ D" t; J3 ^* ~
8.安装合约-9.jpg

2 `1 [% f1 [1 `* ]* E
& l# Q7 I7 h# j8 B  t- u: W
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

11

金钱

0

收听

0

听众
性别

新手上路

金钱
11 元