今天根据hyperledger 企业级开发项目实战视频,自己做了一个投票demo。在这做个记录

首先编写智能合约

$GOPATH的的src路径下创建项目的名称,我的是mkdir vote

然后创建chaincode文件夹,主要放智能合约的代码

进入chaincode后,创建votecc的二级目录,忘了为啥要这么做了

进入votecc目录,输入npm init 先初始化环境

然后输入 npm install --save fabric-shim 安装fabric相关的依赖库

可能会报如上的警告,不过问题应该不大的,继续往下走。

接下来,编辑chaincode的核心代码, 输入 vi vote.js,进入编辑模型开始输入你的核心代码,视频里有模板,讲解的还不错

然后是配置网络,搭建环境

cd到src下vote文件中

然后创建network文件夹,

mkdir votenetwork
cd votenetwork/
mkdir basic-network
cd basic-network/

关于basic-network文件里的配置文件,你看完上面那个视频之后会发现,其实所有配置文件直接从fabric-simple中拷贝过来就可以了

有了crypto-config.yaml文件后需要编译一下,通过如下进行配置,

cryptogen generate --config ./crypto-config.yaml

如果提醒没有cryptogen命令,可以修改一下环境变量,加一个东西,这在上面这个视频的第9节的8分26秒左右有说明

参照他的说明应该可以解决

使用tree命令查看4级目录

没有tree命令的话,可以通过apt-get install tree进行安装

然后进行创始区块创建

首先要创建mkdir channel-artifacts文件夹

configtxgen -profile OneOrgOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel

然后编写docker-compose.yaml文件

最新文章

  1. 把w3schools英文版的所有属性扒下来了,免费分享。
  2. Java设计模式之建造者模式(Builder)
  3. imadjust从用法到原理—Matlab灰度变换函数之一
  4. MFC 自绘按钮 消息响应
  5. jQuery 简介和安装
  6. CMPP3.0 长短信实现方案
  7. java Annotation Demo
  8. php unserialize 返回false的解决方法
  9. static \ const \ volatile 的含义
  10. Google C++ style guide——命名约定
  11. 无比奇怪的问题,Runtime报错,程序仍可运行(有可能是线程崩溃,但主程序不崩溃,线程崩溃可能是因为锁使用不当引起的)
  12. SQLHelper帮助类_下(支持多数据库的封装)
  13. js url参数解析获取
  14. c/c++ 线性表之双向循环链表
  15. easyui 进阶之表单校验、自定义校验
  16. 键盘监听事件KeyListener
  17. PE Header and Export Table for Delphi
  18. dynamics 365 AI 解决方案 —— 介绍
  19. LOJ2476. 「2018 集训队互测 Day 3」蒜头的奖杯 & LOJ2565. 「SDOI2018」旧试题(莫比乌斯反演)
  20. 关于Linq中First、FirstOrDefault;Single、SingleOrDefault等方法的说明

热门文章

  1. mysql or in union all 使用方法
  2. web服务器-nginx默认网站
  3. 4月18日 python学习总结 异常处理、网络编程
  4. 【Java分享客栈】Java程序员为争一口气熬夜硬刚CSS实现掘金首页
  5. GitFlow 工作流
  6. linklist template
  7. redis主从复制和哨兵机制
  8. springboot的核心配置文件
  9. Oracle入门基础(九)一一创建表和管理表
  10. SpringAOP+RabbitMQ+WebSocket实战