DAPP
把基于智能合约的应用称为去中心化的应用程序
前端 -> RPC(客户机/服务器提交网络请求) -> ABI(数据通过ABI编码协议,数据传给智能合约)-> EVM (执行) -> 存储
web3.js
为了让的Ðapp运行上以太坊,使用web3.js library提供的web3
对象。底层实现上,它通过RPC 调用与本地节点通信。web3.js可以与任何暴露了RPC接口的以太坊节点连接。web3
中有eth
对象 web3.eth
具体来表示与以太坊区块链之间的交互。
http://web3.tryblockchain.org/ethereum-web3.js-%E5%85%A5%E9%97%A8%E8%AF%B4%E6%98%8E.html
一、MetaMask
MetaMask是一款在谷歌浏览器Chrome上使用的插件类型的以太坊钱包只需要在谷歌浏览器添加对应的扩展程序即可,非常轻量级,使用起来也非常方便。
二、Truffle
Truffle是目前最流行的以太坊开发框架,采用JavaScript编写,支持智能合约的编译、部署和测试。
安装要有node.js npm
npm install -g truffle
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境
truffle init
● contracts目录中包含Solidity合约代码,其中Migrations.sol是必须的,其他就是你自己写的合约代码了。
● migrations目录中包含合约部署脚本,其中1_initial_migration.js就是用来部署Migrations.sol的,其他的脚本会按照顺序依次执行。
● test目录中就是测试代码了。
会有别的框架有别的目录结构,但都差不多,https://truffleframework.com/模板网站
三、ganache客户端
智能合约必须要部署到链上进行测试。可以选择部署到一些公共的测试链比如Rinkeby或者Ropsten上,任何人。。。可加入可转币,可挖矿
还有一种方式就是部署到私链上,Truffle官方推荐使用两种客户端:
● Ganache
● truffle develop
ganache下载地址https://github.com/trufflesuite/ganache/releases(.appx格式)还有命令行版本
npm install -g ganache-cli
下载完后会有个账户
四、编译和部署合约
Ganache默认运行在7545端口,可以在界面右上方的“设置”里进行更改。运行后默认创建10个账号,每个账号里有100ETH的余额。
要部署到链上,需要把IP、端口、网络ID告诉truffle。修改truffle.js:
module.exports = {
networks: {
development: {
host: 'localhost',
port: '7545',
network_id: '*' // Match any network id
}
}
};
truffle compile
truffle migrate
完成以后开始运行
npm run dev
操作后去Ganache上看一下运行结果:
● Accounts标签:
● Blocks标签:
● Transactions标签:
● Logs标签:
或者nodejs里的一个使用nodejs中 http-server 模块建立轻量级文件服务器,这里访问本地就可以了
http-server -p 8009