智能合约开发 - Truffle & Ganache

以太坊智能合约的开发语言是Solidity. Solidity是一个可以基于web端进行开发&编译, 我们选择下面的框架技术, 可以专注于业务的开发, 提高开发效率:

  • Truffle: 基于NodeJS为Solidity提供了的开发测试环境, 是很好的选择
  • ganache: Truffle官方推荐的, 它是一个可以快速启动的个人以太链, 可以用于开发, 测试, 监控. 它提供了图形用户界面.

基础环境:

以下安装是基于NodeJS:

  1. 安装truffle

    1
    npm install -g truffle
  2. 安装ganache

    1
    npm install -g ganache-cli

创建项目

  1. 如果是不需要’web’, 可以直接用下面的命令:

    1
    2
    3
    mkdir dapp
    cd dapp
    truffle init
  2. 有’web’的其实更好理解, drizzle 是基于ReactJS的集成智能合约的前台实现.

    1
    2
    3
    mkdir dapp
    cd dapp
    truffle unbox drizzle

    我们用方式2来启动初始化项目.

    Truffle Box 提供了几个有用的样板, 让开发人员更专注于dapp的开发.

运行及测试

drizzle已经提供了基础的demo, 我们可以运行起来看下效果

  1. 因为drizzle demo中默认的端口是8545, 那么我们将ganache启动在8545端口

    1
    ganache-cli -p 8545
  2. 编译和发布智能合约
    智能合约需要编译和发布到以太链上, 这里需要用到Truffle命令

    1
    2
    3
    4
    5
    # 编译只能合约
    truffle compile

    # 发布编译好了的智能合约到以太链上
    truffle migrate
  3. 启动Web UI:
    运行Demo

    1
    npm run start

    效果如下:
    drizzle.png

参考:

  1. http://truffleframework.com/blog/drizzle-reactive-ethereum-data-for-front-ends
  2. http://truffleframework.com/docs/ganache/using