使用Atom编写以太坊智能合约
以太坊智能合约开发环境
- 安装库
- 创建项目
- 编写合约
- 编译合约
- 部署合约
- 呼叫合约
- 结语
安装库
使用nodejs
安装ethereumjs-testrpc
和truffle
。ethereumjs-testrpc
是开发时用到的模拟以太坊网络,如果有私链或者其他节点服务器可以不安装;truffle
是solidity
开发比较主流的一个框架。
npm install -g ethereumjs-testrpc truffle
创建项目
使用truffle
构建项目时,truffle
需要一个空的文件夹,如果文件夹内有内容会保错,若以最好新建一个。
mkdir smart-contract-demo
cd smart-contract-demo
truffle init
创建后会生成一些初始的文件,因truffle
版本不同而异。
编写合约
在当前目录打开Atom
atom ./
安装插件linter-solidity
、autocomplete-solidity
和linter-solidity
。写一个HelloWorld.sol
,新建文件contracts/HelloWorld.sol
,代码:
pragma solidity ^0.4.4;contract HelloWorld {function sayHello() returns (string) {return ("Hello World :-)");}
}
启动rpc
:
testrpc
EthereumJS TestRPC v6.0.3 (ganache-core: 2.0.2)
Available Accounts
==================
(0) 0x92feb02c3f9f579da32daf1946722a5930c59a53
……
(9) 0x08cd557c26ee1b36ae163bed37dcac9f70649dbb
Private Keys
==================
(0) 2abb8a7deb9445881a66ca54827e3f93e2e681b13c0956986f39a3f63b32252b
……
(9) 5202c7c30cbf5a10cc547fe659b1d59cd0083b3784a7ff89e8783cef74f67c88
HD Wallet
==================
Mnemonic: fun arm toast spike include attend ceiling damp embrace nut phone hero
Base HD Path: m/44’/60’/0’/0/{account_index}
Listening on localhost:8545
启动后终端输出Listening on localhost:8545
,保持这个终端开启,也不要C掉。
修改truffle.js
module.exports = {networks: {development: {host: "localhost",port: 8545,network_id: "*"}}
};
编译合约
truffle compile
部署合约
修改1_initial_migration.js
var HelloWorld = artifacts.require("HelloWorld");module.exports = function(deployer) {deployer.deploy(HelloWorld);
};
部署/重新部署
truffle migrate
truffle migrate --reset
呼叫合约
truffle console
let contract
HelloWorld.deployed().then(instance => contract = instance)
contract.sayHello.call()
truffle(development)> let contract
undefined
truffle(development)> HelloWorld.deployed().then(instance => {contract = instance})
TruffleContract {
constructor:
……
address: ‘0xd374574475aaf2845527569b4f38897c6b187d40’,
transactionHash: null }
truffle(development)> contract.sayHello.call()
‘Hello World ?’
结语
以上就是合约基本环境的搭建和调试的过程,VSCode过程类似,区别在于安装的插件不同。
使用Atom编写以太坊智能合约相关推荐
- 【以太坊智能合约】Embark Framework 开发基础篇
在之前的文章中,我们看到了使用Solidity开发以太坊智能合约的所有基本知识.我们使用了以太坊钱包,我们能够轻松设置小型产品开发环境.我们会发现开始的时候很不错,但是如果我们想要更深入的话呢?我们要 ...
- 链乔教育在线|智能合约学习——以太坊智能合约学习笔记(四)
链乔教育在线|智能合约学习--以太坊智能合约学习笔记(四) 本笔记记录的是使用matemask钱包连接以太坊私链,并编写一个基本的提币智能合约部署到以太坊私链上,进行调用. 一.浏览器安装metama ...
- 一起学:以太坊智能合约开发
课程介绍 无论在科技圈还是金融圈,"区块链"俨然成了最热的词汇.2016年,区块链写入了国家的十三五规划中:2017年,央行基于区块链技术的数字票据交易平台测试成功:同年,工信部发 ...
- 以太坊智能合约语言Solidity - 1 走进Solidity
1. 走进Solidity 1.1 Remix IDE 界面初识 在本地编写我们可能会遇到各种各样的问题,所以使用在线的Remix编译器来编写合约:https://remix.ethereum.org ...
- 以太坊智能合约开发第二篇:理解以太坊相关概念
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 很多人都说比特币是区块链1.0,以太坊是区块链2.0.在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太 ...
- 使用Remix编译和部署以太坊智能合约
链客,专为开发者而生,有问必答! 此文章来自链客区块链技术问答社区,未经允许拒绝转载. 使用Remix编译和部署以太坊智能合约 Remix 是一个开源的 Solidity 智能合约开发环境,提供基本的 ...
- 区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码
本文使用区块链平台以太坊+智能合约实现一个区块链记账的功能,具体为: 借款人和贷款人以及数额被记录在区块链中.使用区块链地址来表示借款人或者贷款人. 若一个借款人多次向一个贷款人借钱,更新所有的数额之 ...
- truffle (ETH以太坊智能合约集成开发工具) 入门教程
truffle (ETH以太坊智能合约集成开发工具) 入门教程 前言 在你了解区块链开发之前,你有必要了解区块链的一些基础知识,什么是DApp,DApp与传统app的区别, 什么是以太坊,以太坊中的智 ...
- 以太坊 智能合约 简介
以太坊是一个分布式的计算平台.它会生成一个名为Ether的加密货币.程序员可以在以太坊区块链上写下"智能合约",这些以太坊智能合约会根据代码自动执行. 以太坊是什么? 以太坊经常与 ...
最新文章
- 和12岁小同志搞创客开发:手撕代码,点亮LED灯
- 在ubuntu10.04上安装永中office2010
- 解决binwalk运行提示缺少LZMA模块
- win-tc不能在win7下使用
- 当我们在谈论内存时,我们在谈论什么
- 太想成功了--成功之前,你是否养成了这些习惯?
- python实训day5
- wsl2安装_如何在Windows 10上安装WSL 2?
- @扎克伯格:一句对不起,能挽回我们泄漏的数据吗?
- c语言学生管理系统下载,学生管理系统(C语言)
- VMware vCloud Director视频教程
- Java实现简单的银行管理系统(最基本的功能/易上手)
- 计算机操作系统教程徐甲同pdf,《操作系统实践教程》.pdf
- Windows使用WakeOnLan配置【较详细】
- 做数学建模不得不会的数据特征分析---对比分析
- Redis源码分析(sds)
- Unity3D 集成 高德地图SDK 地图
- 【 实测可用 】ESP32 + AD8232 心电图实验
- RoadFlow ASP.NET Core工作流配置文件说明
- linux求斐波那契数列前10项,linux求斐波那契数列的前10项以及总和.
热门文章
- ABP vnext 控制器知识整理
- 计算机图形学(三)-图形学中的基本变换(缩放、平移、旋转、剪切、镜像)
- 【每日论文】GenCo: Generative Co-training for Generative Adversarial Networks with Limited Data
- Eigen 对矩阵的每个元素取绝对值
- C语言中free函数如何确定释放的空间大小
- 常见的DNS攻击与防御
- 基于Qt5.14.2和mingw的Qt源码学习(三) — 元对象系统简介及moc工具是如何保存类属性和方法的
- 地理坐标系与投影坐标系的区别(转)
- oracle索引 oracle索引结构 oracle索引使用 B*Tree索引
- 两轮自平衡车系统的模型构建