8.安装合约

[复制链接]
查看810 | 回复0 | 2023-7-29 00:55:01 | 显示全部楼层 |阅读模式
CSDN资料地址:(152条消息) 1.hyperledger-fabric 资料整理_youth_ymh的博客-CSDN博客
4 N9 c$ q$ s. e0 a1 nhttps://blog.csdn.net/baidu_ymh/article/details/131537319?spm=1001.2014.3001.55012 ^( U% U  S( l/ k* Q; V
知乎:https://zhuanlan.zhihu.com/p/641458419, D$ m/ V  Z, v
章节目录6 t, f: z4 j+ x/ z' w9 B; P
1.hyperledger-fabric 介绍和资料整理 https://www.toutiao.com/article/7251935732179354150/* s; E! H- o8 `' L) X1 O$ s4 U
2.服务环境准备 https://www.toutiao.com/article/7251937147132035623/0 Y+ w9 `( R5 S/ x/ `
3.安装fabric 二进制源码程序 https://www.toutiao.com/article/7251938220630753795/+ L& e" ^! z) d  F8 z/ X
4.生成fabric身份信息文件(证书)https://www.toutiao.com/article/7251940174950105633/: j$ m4 k5 i# U5 S  s" X
5.生成系统通道初始区块文件 https://www.toutiao.com/article/7251940560347349542/
0 G' F- m6 z2 o1 t/ ]6.启动配置网络节点 docker-compose启动文件 https://www.toutiao.com/article/7252140512931889676/' A1 }$ b6 g9 ^# }
7.将组织加入通道 https://www.toutiao.com/article/7252141528884265505/; ^& t4 w; p2 T; Z/ q
8.安装合约链码 https://www.toutiao.com/article/7252142449584521766/
' T1 x1 U* C0 N( wconfigtx.yaml 详解 https://mp.toutiao.com/profile_v4/graphic/preview?pgc_id=7252143717228986918
1 e* U. j" S8 j9 M. Mcrypto-config.yaml配置详解 https://mp.toutiao.com/profile_v4/graphic/preview?pgc_id=7252143970669855235
2 D' P- @# l1 Q7 C$ C7 V9 z2 Q' @' B2 A& c
9 U: @+ F: m, C1 C5 y% C
1.创建合约代码
) Q- y/ j3 E( B" Q% p
9 f/ X3 n+ W0 H8 m- e: l# Y. f- ~语言:java
+ g' t8 D2 W' E& P# C  q: A; E& A/ e6 s. X$ h
参考官网示例: https://mvnrepository.com/artifact/org.hyperledger.fabric-chaincode-java/fabric-chaincode-shim  }& U7 A  t- I; p

# E# e5 |; y  ?# x项目目录3 K- L5 {" v7 K# d- L& R7 u& u

, D: o1 B% H; ]  F" C% c2 N
8.安装合约-1.jpg

3 Y: ]# s4 p$ [. a& }, y  x+ y+ w6 Z6 l: ^+ o' M, E. @6 ?
3.maven 打包% Q( u6 z6 c, T  k

/ x4 L1 m) J# S. U1 a5 R8 A! m) g5 v) U  J6 @* W% T

9 `) q' L$ {, t* W  Z1 k, g打包后target/下会生成chaincode.jar 包。
: U% v8 I& Z$ p+ T# i* k. Q* z$ j7 e3 e# K8 t, R9 U" m" p. `

4 H3 [+ e8 D' J% Q# w( X4.移动包到服务器! L4 [% t3 N( _* p

  ~: V. h0 @4 Y& ?( f将合约代码里target\chaincode.jar和 META-INF 两个文件上传到服务器目录 /home/hyperledgerFabric/qkl_01/chaincode/fabric-java 下,没有目录请创建。
8 W. l  r" D7 h- H" {- a
. P- ~. v, N" ]: E" e! J, d4 C2 }3 w6 {
( l/ W5 O2 Y" u2 ?) z7 |. c, |5.设置环境变量
5 H, y0 p2 c# Z" h- e
# u+ p( B" Z8 w  W7 Y1 ]# Q; Rexport PATH=/home/hyperledgerFabric/qkl_01/bin:$PATHexport FABRIC_CFG_PATH=/home/hyperledgerFabric/qkl_01/config/6.通过 lifecycle 命令打包成链码包
$ I- S. Q5 k3 m0 m$ F3 E* @+ d9 O. T  l' O2 y& B6 L
lifecycle命令参数4 j; L! ^, o- L1 t# p' G# v
6 b" l1 J1 i" V0 v+ ^
package : 打包后的链码包文件3 d! H, B1 i- e( K
* T0 r% d& g  f5 X: c- q3 ]! I
--path : 需要打包的合约代码文件目录1 C" C) Z# A- D
- z- v) [7 M& H2 ~: H
--lang : 链码语言 java版本
9 v8 g% F( C5 k1 L7 w& |8 z, |1 G$ N  Y$ E" S
--label : 链码包名称id
: w% {$ u( W1 D0 {9 Lpeer lifecycle chaincode package fabcar.tar.gz --path /home/hyperledgerFabric/qkl_01/chaincode/fabric-java --lang java --label fabric-java7.安装链码
, F& m6 v$ V! l7 k3 [9 [; r
" ~5 E1 v* @5 l; C2 o+ O/ d, k进入链码包目录:
6 j/ l+ j) X/ Z5 s6 j​cd /home/hyperledgerFabric/qkl_01/chaincode​4 W! x3 R& o- D8 q. w& [3 G$ [% }

% c) D) G2 \: B6 A# g" r9 |7.1 Org1MSP 安装链码& c" R3 F3 {+ I1 |1 R

8 N6 z) W' x0 M  K# U( B7 O/ aexport 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 查看链码# G, r: o1 q7 e. K
9 l# C+ y6 }% n! W
#查询Org1MSP链码 Package ID* l3 A% ~/ E) y% _$ |. k3 Z% t
peer lifecycle chaincode queryinstalled
" M; Z; p( e$ h1 J8 b1 X
2 a5 @9 o: B! i8 U& ~& l9 U​​
. G8 ^5 M. H7 s: @  L7 b/ M! z: e/ M( t/ I( F" r& o
8.安装合约-2.jpg
% z0 W6 J0 }0 O9 n
  `# Q9 [& K3 e3 W' P9 F& j" T6 O
​​3 d4 Y$ o# N0 p" }$ x' C+ _) V
7.1.2 批准链码
. W) j( G5 M  S0 i: }5 k+ t
0 a( f( }" c1 n( _3 N& g#写入环境变量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 安装链码1 z3 A4 c1 S; \0 h4 H( X* c8 H
- z. B3 M6 d  o# r
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 查看链码7 D3 J2 {6 t8 {7 Z3 a
7 A7 A/ F% P5 U' ^( m5 L
#查询Org2MSP链码 Package IDpeer lifecycle chaincode queryinstalled: V3 O% @& I2 V" T& [" c: s' l

/ t; t; X7 Y4 P+ z' b6 o- u! @' n' _
8.安装合约-3.jpg
1 }3 W0 E& G/ Z2 _

6 w. z; N0 V3 w) k9 L3 f( A6 L2 Q) w* X5 J1 W9 R+ p
7.2.2 批准链码
5 W5 b' b6 Y5 }9 v0 }- S; Y& H$ k: Y
#写入环境变量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检查链码
8 V& r) K! `! Y# r
( D6 E  i; @* \5 o. G6 a4 }peer 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将链码提交到通道
! t* s8 A9 t+ y/ T' b6 s4 e, B& K7 ?- y
命令参数+ B, q6 l, F* j  R

, q- |' S! i( Q# q--name : 链码名称
% f. T$ \6 C& s7 ?! ^
9 n" V; \0 X' V0 O--version : 链码版本! X+ D/ _3 Y: `
2 T0 d3 g. S$ e; _
--sequence : 升级序列号,从1开始,每次升级迭代累加1.
' [7 \/ P3 E  [9 W& rpeer 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 确认链码定义已提交给通道/ e2 l, U1 X! g. h

  D! G; S3 F( B0 Speer 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.pem) x( l5 A; }' q( M8 L

4 S% i$ |  v4 H: w- d- U/ n6 C# W1 s+ Z; M6 C9 u
8.安装合约-4.jpg
  o: }" L4 y. U; {* ~* m
' U# g+ j% y0 j) S6 D5 l
: h  u$ m# O3 n) v
. g! T' l  Z4 t  l. K$ r1 z% M
+ z$ H0 x3 u& X- V+ C6 z; N1 e
- G7 l/ T/ u! F8 u
链码安装完毕  F" i( K6 N" `( C2 a- v% \
8 j, x& a: [) j( k' F* T- L" N
# E8 T5 w! ~# R" i& X$ h
8.链码测试  X8 }( @) S5 o. W* u3 p

: a& {5 b, T, t, e; \( L参数4 w3 P6 I, n6 q. H0 O4 c  `$ K
$ b& F6 n$ n3 Q1 \
-C : 通道id7 \3 e% x# A$ T1 x( L" \
/ {( }) V/ R6 g+ _
-n :链码名称! F: z4 [0 d( [" T/ [- @2 y
, L- h- y# x- w5 w7 X$ j2 i' m
-c : 合约参数(function - 合约方法名;Args- 参数,数组格式): Y/ t) J: u# R5 }7 n. U- @: ]
8.1 测试上链
; C2 T( B8 g: ^  c) S, E8 D+ t# r( _9 X( _  N! q
peer 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" ]}'
0 J1 W- x) A$ }6 Y0 }3 H3 t# i执行上链后提示:200 则成功
! V) \1 [! Z$ C5 }3 B
! K2 T5 f0 @$ U0 A& [" S- {& j8 n4 r- {. y; u+ b% J! ~
. l8 \3 j( _0 r3 X2 @3 ^
8.安装合约-5.jpg
3 r0 H* L; I, k% G) s
. n: I) a% Y: Q, J2 [" Z
- h( D) |) e0 a$ J5 Y5 R# b

  ?$ o; |+ J8 y& ~$ h% V
# }( w" S! l& w. J8.2 查看上链数据: a1 O+ I* Y/ v4 d1 h( a& Q3 U: [
, ]! c+ x! E/ h! C& u; p" Q0 Q
peer chaincode query -C ymhchannel -n fabric-java -c '{"Args":["queryUniversal" , "唯一key"]}'
2 [! N/ ]6 b* x7 k7 e查询成功后,后台打印输出上链数据,数据格式为json。截图示例:# I' {+ t% f3 a6 \
' h3 J2 q; R2 N, f; @$ @
: `/ D- b- G/ f* O" }2 D
. g% K1 J$ _& g% ?
8.安装合约-6.jpg
3 M; m. ]7 }2 C

* I6 F) S: C0 z  d9 f  k
- X  H2 O& K" \% {5 I) }; R- e

# {7 P# X" w9 H; F2 I4 \) K9 通过CouchDb 数据库查看上链数据) ~  u: a# r) b3 D
% J5 S% N# f' ?9 l! [+ R

$ _6 N* ~, d1 }# D( [
7 d* i0 A& A! u- K7 r+ n访问地址: http://ip:5984/_utils/
) A2 h: A$ G' V  i. }9 Y
# _8 u6 s( C0 Q; U- F用户密码:admin adminpw
# w; v/ p; B! e6 \; F! I6 R; }. {# G
" i  d4 z8 V8 x, M请查看《6.启动配置网络节点 docker-compose启动文件》章节的5和6 小节目录配置,如下截图:( m% z/ k* O9 H9 Z% J

* a  J% }( A6 p( E1 n1 n' Q3 Q# \" l1 A& V! R# h- p4 N

* [/ n4 h$ c( O' T1 c3 |/ o
8.安装合约-7.jpg

  g9 [+ h3 f  W7 O) o. _$ ?. A- A4 @1 ^- J; ]. Q1 V
8 q  S6 V7 z. e: p9 Q3 C
( {% Q' Q" U% I. }& [
8 X4 Q. i4 C6 @( }/ D# }$ x* z
$ ^9 N/ A; z. D* [# X2 c4 X
8.安装合约-8.jpg

6 [$ N+ @) l: L- J% [
0 P. S" H& d$ q3 R6 V4 X1 q/ ~# r, V$ k) |

% b2 B! L7 i( P6 s+ m7 O0 g
0 N. N! j3 k2 G; E1 @
$ C$ [% E; V1 m" p+ `! A1 A
8.安装合约-9.jpg

9 [4 }( N6 N5 I4 ?; p( U2 n7 ~# z) d. F+ Y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

11

金钱

0

收听

0

听众
性别

新手上路

金钱
11 元