首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ETH 开发环境搭建及智能合约 helloworld

ETH 开发环境搭建及智能合约 helloworld

自己的菜鸟级的起步教程,也算是给自己长记性

准备什么是以太坊

以太坊白皮书_ZH

以太坊白皮书_EN

环境介绍

这里使用了,以下两个开发工具

truffle

testrpc

Truffle 是一个基于js 开发的 以太坊开发框架,其集成很多开发功能及一身, 能够在本地编译, 部署智能合约, 并且可以通过console 对节点进行 rpc 。

testrpc 严格意义上是一个节点模拟工具(调试环境), 打开本地端口后, 其数据存在内存中, 不在硬盘的数据库内(不同于 geth ,mist ) 用于测试合约很方便, (如果在geth 上测试合约,需要自己开私链,还是方便了不少)

工具安装truffle 安装

truffle 是node.js工程 所以先安装 node.js

安装环境后 console 执行

安装完成后执行

回显

如上安装成功

这个框架在激烈的开发中,所以不同版本,可能出入大,(反正我是支持支持最新版!)

testrpc 安装

也是js 开发,所以,一键安装它 执行后,回显如下

会自动的分配我们十个地址,用于测试, 打开8545 rpc端口

环境测试

先启动节点 testrpc

之后启动truffle的rpc命令行

当终端1出现

说明已经,正常接入rpc控制台

执行命令

回显恰好是分配我们的测试地址

余额查询

(好像js 对大数支持不好???)

Q&A

因为这个版本迭代太快,所以发现网上有些教程,存在各种报错 所以算是自己慢慢摸索考证,解决了部分问题

至此环境搭建完毕

开始

上面算是搭建好了开发的环境 下面开始写一个hello world的智能合约

什么是智能合约

其实在我的理解上 EVM 以太坊虚拟机,就是我们允许智能合约的平台, 我们使用solidity 编写的合约,然后,经过编译器,将其编译成字节码(op) , (真的神奇), 当部署,和使用合约之后,就会被执行 就是一个函数,签订合同的就可以使用(估计错误)

这样援引一段话

智能合约只是一些运行在电脑(或其他节点)的区块链加密货币网络的特定代码,一旦节点执行了这个代码,合约就会更新总账(ledger)。所以如果你们熟悉我的话,我喜欢在一些已经存在的概念上(notion),做一些类比和抽象上的尝试。实际上这可以构建的知识结构,比如模式(schema)。 什么是智能合约

这里是部分EOS(基于eth的去中心操作系统的部分合约代码)

下面是部分的evm机器码(汇编!!!)

这里是的EOS合约内容

合约部署工程模板

truffle 很方便的给我们提供了,便捷的工程模板的搭建

建立目录hello 执行

等待片刻

以上回显 表示模板建立OK 目录结构

模板初始化完毕

合约编译

solidity是编写合约的语言,和js相似(奈何没学过),所以从度娘那里抄了一个helloworld

contract {} 说明是合约, 定义函数,说明返回值类型,函数体返回字符串,所以最后应该会显示该字符串(应该吧)

保存为hello.sol ,保存在contract 目录下 (模板本身自带一个合约,可以删除,可以不动,没影响)

执行 完成编译

警告先忽略, 编译内容在我们的build/contract下的json文件中

合约部署

修改部署脚本igrations/1initialmigration.js

部署合约前先要启动节点执行 以进行合约部署

注意 : 当增加或者删除了某个合约后,可以执行“truffle migrate --reset”命令重新部署合约。 终端回显

同时 节点终端dbg 有我们的TX gas

合约部署完毕

合约执行

至此HELLOworld 总算是hel出来了

常见问题

Q&A

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180210G01QCB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券