Eth 部署智能合约

Posted linguoguo

tags:

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

首先要开发以太坊的智能合约,需要EVM(以太坊虚拟机),也就是需要运行的环境,我们可以通过 geth 来设置开发环境:

geth --datadir testNet --dev console 2>> test.log

命令参数说明(更多命令详解可阅读Geth命令用法-参数详解篇):
–dev 启用开发者网络(模式),开发者网络会使用POA共识,默认预分配一个开发者账户并且会自动开启挖矿。
–datadir 后面的参数是区块数据及秘钥存放目录。
第一次输入命令后,它会放在当前目录下新建一个testNet目录来存放数据。
console 进入控制台
2>> test.log 表示把控制台日志输出到test.log文件

然后就进入了以太坊客户端 console 界面。

在 console 里,你可以通过相关命令来建立账户、挖矿、转账、查看区块高度等。

接着,建立智能合约:

pragma solidity >=0.4.22 <0.6.0;
contract man {
    uint amount;
    
    constructor(uint i) public {
        amount = i;
    }
    
    function say(uint s) public returns (uint) {
        amount += s;
        return amount;
    }
}

可以在 remix (在线 solidity 编译器)编译你的代码

技术分享图片

选择编译器版本,然后编译,再点击 detail ,弹出详细信息,

技术分享图片

将文本复制起来,修改其中的变量,from 地址等,然后在 geth console 中输入,则部署成功

技术分享图片

运行合约,发现error

技术分享图片

解决方式:

eth.defaultAccount=eth.coinbase;





以上是关于Eth 部署智能合约的主要内容,如果未能解决你的问题,请参考以下文章

使用 web3 部署智能合约时不支持同步请求

ETH智能合约开发手把手入门教程|猿创征文

Eth,如何从智能合约中调用存款功能

智能合约实战 solidity 语法学习 11 [ 以太坊发币 验证合约 体验下过程 ] 附代码

智能合约实战 solidity 语法学习 11 [ 以太坊发币 验证合约 体验下过程 ] 附代码

智能合约实战 solidity 语法学习 11 [ 以太坊发币 验证合约 体验下过程 ] 附代码