Let's Do 本地开发智能合约

Posted 码咖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Let's Do 本地开发智能合约相关的知识,希望对你有一定的参考价值。

上篇文章我们发了个币,有人抱怨在线(remix)写代码不爽,好吧,那就来看下怎么在本地开发智能合约?

智能合约的文件夹,所有的智能合约文件都放置在这里,里面包含一个重要的合约Migrations.sol(稍后再讲)
  • migrations/ 用来处理部署(迁移)智能合约 ,迁移是一个额外特别的合约用来保存合约的变化。(注意:每个migration文件前面有序号,这个序号表示migration文件的执行顺序)
  • test/ 智能合约测试用例文件夹
  • truffle.js/ 配置文件,配置不同网络
  • 其他代码可以暂时不用管。

    另外,我们看到.sol 文件中的solidity版本不是我们安装的版本,所以,改成我们刚刚安装的版本,改成^0.5.16,

    在truffle.js中,我们需要去掉networks的注释,在这里可以定义开发环境、测试环境、生产环境的host、port、network_id

    代码的理解都比较简单,我几乎都加上了注释,这里就不讲解了,代码下载地址:https://github.com/joeBeckham/test.git

    开头,使用大写的 T 。这样的命名方式就将测试合约和普通合约区分开来了, 让测试运行器知道哪个合约代表测试套件。

    跟测试合约类似,所有的测试方法,都必须以小写单词 test 开头。每个测试方法都会被当作一个独立的交易, 根据在测试文件中定义的顺序执行。

    那么,我们来执行测试命令:truffle test

    我们看到两个test都通过了,说明是部署合约的账户里面的余额是10000。

    到这里,我们的整个流程就已经跑通了,开发环境、编码工具、本地链、代码编译、部署、测试都ok了。后面我们更加深入的介绍智能合约。

    另外,如果你和我一样不喜欢黑色背景的话,那么我们切换背景色,ctrl+k, ctrl+t,选择我们喜欢的颜色即可哦。



  • 不懂Neo4j?没关系,一起学
  • 不懂Neo4j?没关系,先学增删改查
  • SpringBoot+Neo4j在社交电商中,讲述你是怎么被绑定为下线的
  • 请别再问我什么是分布式事务
  • 分布式事务解决方案之2PC、TCC
  • 分布式事务解决方案之可靠消息最终一致性、最大努力通知
  • 天天都用消息队列,却不知道为啥要用MQ,这就有点尴尬了
  • 拜托,面试别再问我数据库的分库分表!
  • 利用python的flask框架开发智能合约

    参考技术A

    开发智能合约的框架有很多,比如:

    但我是一个pythoner,显然上述都不合适

    3.6

    ganache是以太坊的本地测试链

    web3是一个用于和以太坊交互的python库。

    flask的插件,可快速构建restful风格的api

    flask的插件,用于序列化/反序列化

    启动一个区块链,用于测试智能合约的发布

    先查看本地的solidity版本是多少

    使用solidity编写智能合约。
    solidity是用于编写以太坊智能合约的语言。
    编写user.sol文件

    官方的版本中要连接 stringUtils 主文件 ,因为我是一个菜鸡,不知道怎么导入外部包,所以直接省掉了这部分操作。

    合约部署成功以后(仅部署一次即可),然后可以通过flaskapi来做数据 “存”,“取” 操作。

    以上是关于Let's Do 本地开发智能合约的主要内容,如果未能解决你的问题,请参考以下文章

    利用python的flask框架开发智能合约

    Truffle/Ganache:有没有办法设置部署地址?

    2017浙江省赛 D - Let's Chat ZOJ - 3961

    智能合约开发 基于Hardhat(实操)

    Brownie 开发智能合约(入门使用)

    星云链智能合约开发:运行星云链