balance-transfer论文相关接口操作日志(1)--通道配置

channelmain peer0.org5、peer1.org5、peer0.org1、peer0.org2、peer0.org3、peer0.org4
channelproduce peer0.org1、peer1.org1、peer2.org1、peer3.org1
channelprocess peer0.org2、peer1.org2、peer2.org2、peer3.org2
channellogistics peer0.org3、peer1.or3、peer2.org3、peer3.org3
channelsales peer0.or4、peer1.org4、peer2.org4、peer3.org4

1 组织一的节点位于channelmain和 channelproduce中,使用组织一的Token创建这两个通道,所有节点加入channelproduce中更新组织一的锚节点,peer0.org1加入chanelmain中更新组织一的锚节点
2 组织二的节点位于channelprocess和channelmain,使用组织二的Token创建channelprocecc,所有节点加入通道channelprocess后更新组织二锚节点,peer0.org2加入channelmain后更新组织二的锚节点
3 组织三的节点位于channellogistics和channelmain,使用组织三的Token创建channellogistics,所有节点加入通道channellogistics后更新组织三锚节点,peer0.org3加入channelmain后更新组织三的锚节点
4 组织四的节点位于channelsales和channelmain,使用组织四的Token创建channellsales,所有节点加入通道channelsales后更新组织四锚节点,peer0.org4加入channelmain后更新组织三的锚节点
5 组织五的节点位于channelmain,使用组织五的Token所有节点加入通道channelmain后更新组织五锚节点

一养殖链 channelproduce 组织1
生成组织一Token

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=prod_user_3&orgName=Org1'

在这里插入图片描述
Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk0OTIzLCJ1c2VybmFtZSI6InByb2RfdXNlcl8zIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyOTQ5MjR9.zEOEdPhOj4CRSoj6ppVmge_7N85F23n16LqpSzJDT54

创建通道channelmain

curl -s -X POST \
  http://localhost:4000/channels \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjFlKzMyLCJ1c2VybmFtZSI6InByb2RfdXNlcl8yIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyODMzMTB9.2LCU3ZwVRShBIVVvgIJBuEpfFo6V5AGn_LAdgaJUYCo"\
  -H "content-type: application/json" \
  -d '{
	"channelName":"channelmain",
	"channelConfigPath":"../artifacts/channel/channelmain.tx"
}'

在这里插入图片描述
创建通道channelproduce

curl -s -X POST \
  http://localhost:4000/channels \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjFlKzMyLCJ1c2VybmFtZSI6InByb2RfdXNlcl8yIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyODMzMTB9.2LCU3ZwVRShBIVVvgIJBuEpfFo6V5AGn_LAdgaJUYCo"\
  -H "content-type: application/json" \
  -d '{
	"channelName":"channelproduce",
	"channelConfigPath":"../artifacts/channel/channelproduce.tx"
}'

peer0.org1加入通道channelmain

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjFlKzMyLCJ1c2VybmFtZSI6InByb2RfdXNlcl8yIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyODMzMTB9.2LCU3ZwVRShBIVVvgIJBuEpfFo6V5AGn_LAdgaJUYCo" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org1.example.com"]
}'

在这里插入图片描述
指定channelmain中组织一的锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk0OTIzLCJ1c2VybmFtZSI6InByb2RfdXNlcl8zIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyOTQ5MjR9.zEOEdPhOj4CRSoj6ppVmge_7N85F23n16LqpSzJDT54"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org1MSPanchors.tx"
}'

在这里插入图片描述
所有节点(peer0 1 2 3)加入channelproduce

curl -s -X POST \
  http://localhost:4000/channels/channelproduce/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk0OTIzLCJ1c2VybmFtZSI6InByb2RfdXNlcl8zIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyOTQ5MjR9.zEOEdPhOj4CRSoj6ppVmge_7N85F23n16LqpSzJDT54" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org1.example.com","peer1.org1.example.com","peer2.org1.example.com","peer3.org1.example.com"]
}'

在这里插入图片描述
加入后指定channelprodece组织一锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelproduce/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk0OTIzLCJ1c2VybmFtZSI6InByb2RfdXNlcl8zIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyOTQ5MjR9.zEOEdPhOj4CRSoj6ppVmge_7N85F23n16LqpSzJDT54"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/producechannelanchors/Org1MSPanchors.tx"
}'

在这里插入图片描述
二 加工链 channelprocess 组织2
生成组织二Token

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=proc_user_1&orgName=Org2'

Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk1NTI5LCJ1c2VybmFtZSI6InByb2NfdXNlcl8xIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MTgyOTU1MzB9.wZfyNMigKN9uPo2XXiaJA-X0vPLX9k0vwaMtteTo9wA

创建通道channelproduce

curl -s -X POST \
  http://localhost:4000/channels \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk1NTI5LCJ1c2VybmFtZSI6InByb2NfdXNlcl8xIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MTgyOTU1MzB9.wZfyNMigKN9uPo2XXiaJA-X0vPLX9k0vwaMtteTo9wA"\
  -H "content-type: application/json" \
  -d '{
	"channelName":"channelprocess",
	"channelConfigPath":"../artifacts/channel/channelprocess.tx"
}'

peer0.org2加入通道channelmain

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk1NTI5LCJ1c2VybmFtZSI6InByb2NfdXNlcl8xIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MTgyOTU1MzB9.wZfyNMigKN9uPo2XXiaJA-X0vPLX9k0vwaMtteTo9wA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org2.example.com"]
}'

指定channelmain中组织二的锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk1NTI5LCJ1c2VybmFtZSI6InByb2NfdXNlcl8xIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MTgyOTU1MzB9.wZfyNMigKN9uPo2XXiaJA-X0vPLX9k0vwaMtteTo9wA"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org2MSPanchors.tx"
}'

所有节点(peer0 1 2 3)加入channelprocess

curl -s -X POST \
  http://localhost:4000/channels/channelprocess/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk1NTI5LCJ1c2VybmFtZSI6InByb2NfdXNlcl8xIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MTgyOTU1MzB9.wZfyNMigKN9uPo2XXiaJA-X0vPLX9k0vwaMtteTo9wA" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org2.example.com","peer1.org2.example.com","peer2.org2.example.com","peer3.org2.example.com"]
}'

加入后指定channelprocess组织二锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelprocess/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk1NTI5LCJ1c2VybmFtZSI6InByb2NfdXNlcl8xIiwib3JnTmFtZSI6Ik9yZzIiLCJpYXQiOjE2MTgyOTU1MzB9.wZfyNMigKN9uPo2XXiaJA-X0vPLX9k0vwaMtteTo9wA"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/processchannelanchors/Org2MSPanchors.tx"
}'

三物流链 channellogistics 组织3
生成组织三Token

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=logis_user_1&orgName=Org3'

Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2NDE1LCJ1c2VybmFtZSI6ImxvZ2lzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmczIiwiaWF0IjoxNjE4Mjk2NDE2fQ.B-9Hvsr50J8KzVMUr1aVIj-e-kweuLgd-nZAFyqg0xc

创建通道channellogistics

curl -s -X POST \
  http://localhost:4000/channels \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2NDE1LCJ1c2VybmFtZSI6ImxvZ2lzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmczIiwiaWF0IjoxNjE4Mjk2NDE2fQ.B-9Hvsr50J8KzVMUr1aVIj-e-kweuLgd-nZAFyqg0xc"\
  -H "content-type: application/json" \
  -d '{
	"channelName":"channellogistics",
	"channelConfigPath":"../artifacts/channel/channellogistics.tx"
}'

peer0.org3加入通道channelmain

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2NDE1LCJ1c2VybmFtZSI6ImxvZ2lzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmczIiwiaWF0IjoxNjE4Mjk2NDE2fQ.B-9Hvsr50J8KzVMUr1aVIj-e-kweuLgd-nZAFyqg0xc" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org3.example.com"]
}'

指定channelmain中组织三的锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2NDE1LCJ1c2VybmFtZSI6ImxvZ2lzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmczIiwiaWF0IjoxNjE4Mjk2NDE2fQ.B-9Hvsr50J8KzVMUr1aVIj-e-kweuLgd-nZAFyqg0xc"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org3MSPanchors.tx"
}'

所有节点(peer0 1 2 3)加入channellogistics

curl -s -X POST \
  http://localhost:4000/channels/channellogistics/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2NDE1LCJ1c2VybmFtZSI6ImxvZ2lzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmczIiwiaWF0IjoxNjE4Mjk2NDE2fQ.B-9Hvsr50J8KzVMUr1aVIj-e-kweuLgd-nZAFyqg0xc" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org3.example.com","peer1.org3.example.com","peer2.org3.example.com","peer3.org3.example.com"]
}'

加入后指定channellogistics组织三锚节点

curl -s -X POST \
  http://localhost:4000/channels/channellogistics/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2NDE1LCJ1c2VybmFtZSI6ImxvZ2lzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmczIiwiaWF0IjoxNjE4Mjk2NDE2fQ.B-9Hvsr50J8KzVMUr1aVIj-e-kweuLgd-nZAFyqg0xc"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/logisticschannelanchors/Org3MSPanchors.tx"
}'

四分销链 channelsales 组织4
生成组织四Token

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=sales_user_1&orgName=Org4'

Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2Nzk0LCJ1c2VybmFtZSI6InNhbGVzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmc0IiwiaWF0IjoxNjE4Mjk2Nzk1fQ.yoRHktW9VpmwXU04hlmq8ahiBQTRTK7LMFu1v4ZPZgc

创建通道channelsales

curl -s -X POST \
  http://localhost:4000/channels \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2Nzk0LCJ1c2VybmFtZSI6InNhbGVzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmc0IiwiaWF0IjoxNjE4Mjk2Nzk1fQ.yoRHktW9VpmwXU04hlmq8ahiBQTRTK7LMFu1v4ZPZgc"\
  -H "content-type: application/json" \
  -d '{
	"channelName":"channelsales",
	"channelConfigPath":"../artifacts/channel/channelsales.tx"
}'

peer0.org4加入通道channelsales

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2Nzk0LCJ1c2VybmFtZSI6InNhbGVzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmc0IiwiaWF0IjoxNjE4Mjk2Nzk1fQ.yoRHktW9VpmwXU04hlmq8ahiBQTRTK7LMFu1v4ZPZgc" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org4.example.com"]
}'

指定channelmain中组织四的锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2Nzk0LCJ1c2VybmFtZSI6InNhbGVzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmc0IiwiaWF0IjoxNjE4Mjk2Nzk1fQ.yoRHktW9VpmwXU04hlmq8ahiBQTRTK7LMFu1v4ZPZgc"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org4MSPanchors.tx"
}'

所有节点(peer0 1 2 3)加入channelsales

curl -s -X POST \
  http://localhost:4000/channels/channelsales/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2Nzk0LCJ1c2VybmFtZSI6InNhbGVzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmc0IiwiaWF0IjoxNjE4Mjk2Nzk1fQ.yoRHktW9VpmwXU04hlmq8ahiBQTRTK7LMFu1v4ZPZgc" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org4.example.com","peer1.org4.example.com","peer2.org4.example.com","peer3.org4.example.com"]
}'

加入后指定channelsales组织四锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelsales/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk2Nzk0LCJ1c2VybmFtZSI6InNhbGVzX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmc0IiwiaWF0IjoxNjE4Mjk2Nzk1fQ.yoRHktW9VpmwXU04hlmq8ahiBQTRTK7LMFu1v4ZPZgc"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/saleschannelanchors/Org4MSPanchors.tx"
}'

五追溯链 channelmain 组织5
生成组织五Token

curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=trace_user_1&orgName=Org5'

Token值

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk3NTM2LCJ1c2VybmFtZSI6InRyYWNlX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmc1IiwiaWF0IjoxNjE4Mjk3NTM3fQ.TFqVOp2LafLMRP_wNHuLW1n-aC778X_-UbNXrNiF8mg

所有节点(peer0 1 )加入channelmain

curl -s -X POST \
  http://localhost:4000/channels/channelmain/peers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk3NTM2LCJ1c2VybmFtZSI6InRyYWNlX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmc1IiwiaWF0IjoxNjE4Mjk3NTM3fQ.TFqVOp2LafLMRP_wNHuLW1n-aC778X_-UbNXrNiF8mg" \
  -H "content-type: application/json" \
  -d '{
	"peers": ["peer0.org5.example.com","peer1.org5.example.com"]
}'

加入后指定channelmain组织五锚节点

curl -s -X POST \
  http://localhost:4000/channels/channelmain/anchorpeers \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk3NTM2LCJ1c2VybmFtZSI6InRyYWNlX3VzZXJfMSIsIm9yZ05hbWUiOiJPcmc1IiwiaWF0IjoxNjE4Mjk3NTM3fQ.TFqVOp2LafLMRP_wNHuLW1n-aC778X_-UbNXrNiF8mg"\
  -H "content-type: application/json" \
  -d '{	
	"configUpdatePath":"../artifacts/channel/mainchannelanchors/Org5MSPanchors.tx"
}'

关于通道的配置已经完成,接下来编写链码 实现业务逻辑

查询channelmain区块高度

curl -s -X GET \
  "http://localhost:4000/channels/channelmain?peer=peer0.org1.example.com" \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk0OTIzLCJ1c2VybmFtZSI6InByb2RfdXNlcl8zIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyOTQ5MjR9.zEOEdPhOj4CRSoj6ppVmge_7N85F23n16LqpSzJDT54" \
  -H "content-type: application/json"

在这里插入图片描述
区块0 创世区块
区块1 为channelmain组织一更新锚节点
区块2 为channelmain组织二更新锚节点
区块3 为channelmain组织三更新锚节点
区块4 为channelmain组织四更新锚节点
区块5 为channelmain组织五更新锚节点

查询channelproduce区块高度

curl -s -X GET \
  "http://localhost:4000/channels/channelproduce?peer=peer0.org1.example.com" \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk0OTIzLCJ1c2VybmFtZSI6InByb2RfdXNlcl8zIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyOTQ5MjR9.zEOEdPhOj4CRSoj6ppVmge_7N85F23n16LqpSzJDT54" \
  -H "content-type: application/json"

在这里插入图片描述
区块0 创世区块
区块1 为channelproduce组织一更新锚节点

通过区块高度查询数据:

curl -s -X GET \
  "http://localhost:4000/channels/channelproduce/blocks/5?peer=peer0.org1.example.com" \
  -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEwMDAxNjE4Mjk0OTIzLCJ1c2VybmFtZSI6InByb2RfdXNlcl8zIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE2MTgyOTQ5MjR9.zEOEdPhOj4CRSoj6ppVmge_7N85F23n16LqpSzJDT54" \
  -H "content-type: application/json"

在这里插入图片描述

介绍Hyperledger fabric的PPT(52页)
密码学笔记
区块链知识体系简介
部署 ipfs 网络 对接联盟链网络
Hyperledger fabric网络(多共识 多版本 多数据库 ca ) 封装接口sdk
Hyperledger Caliper 测试(多组织 多节点 多共识)
区块链浏览器
联系We-chat V : 18852897525

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值