精华 【视频教程】以太坊智能合约开发小白教程
发布于 2 年前 作者 路人-戊 8096 次浏览 来自 分享

之前写过两篇关于以太坊智能合约开发相关的帖子

仍有些同学在实践过程中遇到些问题,这里录制几个小视频,大家可以对照着看下。视频下载戳这里

1、安装以太坊客户端

此过程比较简单,就不再录制视频,可参照下面的步骤 Ubuntu下

sudo apt-get install software-properties-common 
sudo add-apt-repository -y ppa:ethereum/ethereum 
sudo apt-get update
sudo apt-get install ethereum

Win下 可参考此帖,有问题可跟帖提问

2、搭建私有链

这个过程比较简单,依照图文教程即可,视频教程里也有演示

要点

1、首先要保证节点之间是可以互通互联的 2、需要有相同的创世纪文件 3、需要有相同的netwokid

创世纪文件
{
    "nonce": "0×0000000000000042",
    "mixhash": "0×0000000000000000000000000000000000000000000000000000000000000000",
    "difficulty": "0×400",
    "alloc": {
	},
    "coinbase": "this is a test",
    "timestamp": "0×00",
    "parentHash": "0×0000000000000000000000000000000000000000000000000000000000000000",
    "extraData": "GenesisBlock",
    "gasLimit": "0xffffffff"
}
始始化
 geth --datadir "cdata1" init init.json
启动节点
geth  --identity "newEth" --rpc --rpccorsdomain "*" --datadir "cdata2" --port 30304 --rpcapi "personal,db,eth,net,web3" --networkid 999  --rpcport 8081  console

3、部署智能合约

此节演示一个投票的智能合约部署的过程,合约代码戳这里

4、合约调用

此节演示怎么在geth console里面调用智能合约


视频已上传到百度云,有疑惑的同学请跟帖提问

23 回复

1364769738@qq.com 谢谢啦~(≧▽≦)/~

@路人-戊 创世文件中的difficulty是怎么定的?越大越难挖矿还是越小越难挖矿?我之前定的是0x0200,就是用官方给的难度值,感觉挖矿比0x400快,也比0x0001快

@imtypist 当然是难度越大,平均爆块速度越慢

@学姐有头不魔法 已经上传到百度云了,上面有链接,可以直接下载哦

@路人-戊 谢谢,找到了。 跟着你的视频一步一步的做,可是还是出现了问题。搭建私有链的时候,挖矿 然后就出现了这个。。 miner.start() INFO [05-02|19:10:19] Updated mining threads threads=0 null 这是怎么回事啊。。。 还有本文的合约代码的链接是不是失效了,为什么打不开了。

@学姐有头不魔法 你的geth版本是1.6吧,1.6改动挺多的,吐槽的人也很多!上面显示的版本是1.5.9 解决方法: 1、把geth版本退回到1.5.9 2、尝试这个解决方法

@路人-戊 弱弱的问一句怎么查看版本号。。又怎么退回1.5.9.。。。

@学姐有头不魔法 Google it first! If you still cannot solve, ask again

@路人-戊 看楼主的视频部署合约的时候。又出现问题,首先是 truffle.js 文件内容不一样 不过我也没在意。。。然后就是build 的时候 :DSVEBZ){)~$P_D~%3NJEW0F.png 这是什么原因,求解答。。![AT$ITI2SFBMM9IVLQ9~B67.png

@路人-戊 我知道了,这个是truffle 3.0 版本不同

hello 大神,我想知道怎么通过web3查询区块链上的代币交易?是可以查询到具体交易信息,从哪个地址到哪个地址,哪种代笔,和交易了多少代笔。谢谢

@zhang188wenhua 这个不一定非要web3去查询,你可以直接去区块链流量器上查到某个 代币合约地址 所的相关的交易,比如这个 https://etherscan.io/address/0x9a642d6b3368ddc662CA244bAdf32cDA716005BC 至于查询与这个 代币合约地址 相关交易的具体的信息,提供以下两个思路 1、如果这个合约是你自己的,那你可以在里面添加event事件,当发生了交易(比如调用了合约的transfer方法)那就发射一个事件,你可以捕捉到这个事件 2、如果合约不是你的,你只是想看与某个代币地址(比如量子链的合约)相关的交易,最简单的就是去区块流量器上抓数据,或者自己扫描过滤区块里所有的交易,帅选出指定地址相关的交易,拿到交易的hash再去查这个交易的详情

@路人-戊 我查了交易的详情,但是不明白怎么查看具体数据,第一张图是在区块链浏览器上查的数据,代币是OMG,但是在区块链上查询具体交易的结果是图二,我想怎么解析图二这个交易内容,完全看不出来交易的是啥和交易了多少啊406D0F1A47336A01CAA6101D56A84ACD.pngDE4A9DE62B1A2E54862BFEC6C9255AC5.png

@zhang188wenhua 你仔细看第一个图,transfer有两个参数,接受地址和转账金额,下面的[0] [1] 是参数的值,只是变了个形式展现的,对应到下面那个图,input字段其实就是这条合约交易需要EVM执行的字节码,但是它有一个编码规范,可戳这里,那么你拿到这个input的值,直接去decode即可

@路人-戊 我查询的问题解决了,现在问题是广播代币交易,我查的web3的接口发送接口是eth_sendTransaction参数如第一张图,我想问的是 data:就是第二张图的input对吧?

  那这个接口是怎么判断我转的是什么代币呢?![44444.png](/public/upload/d8c90e414023859c79cc0e803efdb186.png)![DE4A9DE62B1A2E54862BFEC6C9255AC5.png](/public/upload/1c4865fe040ef1b57abddc4214eb963b.png)

大神,哪里可以有智能合约的的编程例子可以学习啊

@那eth_sendTransaction这个接口是怎么判断我转的是什么代币呢?我没看到有这个参数啊

@2722119447 最后一次警告,再发广告立马封账号

回到顶部