区块链学习笔记--以太坊及solidity编程

区块链学习笔记–以太坊及solidity编程

常用工具的下载与安装

  1. Atom/VS Code/Sublime 这些程序语言编辑器都是漂亮的、好用的本地开源编辑器。
  2. Atom的安装方法
    1. 下载:前往https://atom.io/ 下载最新的版本。
    2. 插件安装
      1)打开插件安装功能:Help>Welcome Guide> Install Package>Open Installer
      2)安装插件:autocomplete-solidity代码自动补齐插件, linter-solium,linter-solidity 代码错误检测插件,language-ethereum 代码高亮插件。
  3. Visual Studio Code 的安装方法
    1. 下载:前往https://code.visualstudio.com/下载最新的版本。
    2. 插件安装:安装VS Code之后,点击左侧的扩展(扩展)按钮,搜索“solidity”,安装Juan Blanco的solidity扩展插件。
  4. Truffle及Ganache的安装
    Truffle是目前最流行的以太坊开发框架,采用JavaScript编写,支持智能合约的编译、部署和测试。
    Truffle安装:
    (1)下载并安装Node.js套件。 Nodejs下载地址:https://nodejs.org/zh-cn/
    (2)下载Truffle(下载地址:https://truffleframework.com/truffle),并运行下面的命令行进行安装
npm install truffle -g

Ganache是truffle提供的本地的区块链测试环境。下载地址: https://truffleframework.com/ganache 文件有90M,所以下载很慢。此处建议使用下载工具,不然很容易下载失败。

  1. 常见错误处理

注意事项

  1. 编辑好的solidity程序一般放在remix在线编辑器环境下运行。
    https://remix.ethereum.org/
    不过,有时候这个网站会连接失败。这个时候,需要有些耐心等待恢复正常。
  2. 文档连接
    (1)Web3js官网: https://web3js.readthedocs.io/en/1.0/
    (2)truffle-contract,这个可以看作web3js的一个包装,官网:https://github.com/trufflesuite/truffle-contract
  3. constant (view) 这个函数头定义关键字,在合约创建时,会将所有的constant方法都执行一下。这样可能会导致一些问题。
    参见下面的例子:
constract person{
    uint8 _age;

    constructor(){
        _age = 10;
    }

    function setAge(uint8 age) constant returns(uint8){
       return _age = age; 
    }

    function age() constant returns(uint8){
       return _age; 
    }

    // 析构函数
    function kill() constant {
       if ( _owner == msg.sender) {
            selfdestruct(_owner);
        }
    }  
}

上面的语句执行的时候,会在初始化的时候执行kill函数,这样会导致整个合约被销毁而不能使用的情况。所以,对于一些有特殊功能的函数,需要注意constant关键字的使用方法。

truffle/ganache搭建Dapp及测试流程

  1. 进入truffle网站box页面(https://truffleframework.com/boxes),找与想做的Aapp类似的box。根据说明安装示范程序,然后填充必要的业务逻辑。
  2. 测试流程:
    (1)编译合约
truffle compile

(2)迁移合约

truffle migrate

(3)启动ganache,并获取地址,及账号信息

(4)从终端启动合约节点 。下面是命令行。dev是配置的ganache地址的ID

npm run dev

(5)将MetaMask切换为私有网络,配置为ganache的地址 通常为http://127.0.0.1:7545

(6)进行测试。

猜你喜欢

转载自blog.csdn.net/sitebus/article/details/81571089