以太坊研究系列【Mist】
此文档为个人整理学习使用,部分内容来源于网络,也期待能给你带来益处。
Mist
安装meteor
Chaim:tmp Chaim$ curl https://install.meteor.com/ | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7786 0 7786 0 0 3893 0 --:--:-- 0:00:02 --:--:-- 2629
Downloading Meteor distribution
######################################################################## 100.0%
Meteor 1.6.0.1 has been installed in your home directory (~/.meteor).
Writing a launcher script to /usr/local/bin/meteor for your convenience.
To get started fast:
$ meteor create ~/my_cool_app
$ cd ~/my_cool_app
$ meteor
Or see the docs at:
docs.meteor.com
安装yarn
Chaim:~ Chaim$ sudo npm install -g yarn
[email protected] /usr/local/lib/node_modules/yarn
更新nodejs
Chaim:~ Chaim$ yarn global add [email protected]
Node version 0.10.36 is not supported, please use Node.js 4.0 or higher.
因为我的nodejs还是0.10,各种不支持,去https://nodejs.org/en/download/下载安装最新版nodejs,直接安装即可。
安装electron
用以下命令总是网络超时:
npm install -g [email protected]
查找其它方法,得到以下方法:
sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
sudo cnpm install -g electron 注:最好注明办版本
gulp
Chaim:~ Chaim$ npm install -g gulp
安装Mist
$ git clone https://github.com/ethereum/mist.git
$ cd mist
$ git submodule update --init
$ yarn
安装很慢,结果如下:
yarn install v1.3.2
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 📃 Building fresh packages...
✨ Done in 12.40s.
✨ Done in 3037.40s.
启动Mist后台程序:
cd mist/interface && meteor --no-release-check
结果如下:
Chaim:interface Chaim$ meteor --no-release-check
[[[[[ ~/Documents/workspace/mist/interface ]]]]]
=> Started proxy.
=> Started MongoDB.
=> Started your app.
=> App running at: http://localhost:3000/
=> Client modified -- refreshing
启动另一终端,执行mist客户端:
Chaim:mist Chaim$ electron . --rpc /Users/Chaim/Documents/workspace/ethPri/geth.ipc
App threw an error during load
/Users/Chaim/Documents/workspace/mist/main.js:16
import configureReduxStore from './modules/core/store';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:53:10)
at Object.runInThisContext (vm.js:95:10)
at Module._compile (module.js:543:28)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at loadApplicationPackage (/usr/local/lib/node_modules/electron/dist/Electron.app/Contents/Resources/default_app.asar/main.js:283:12)
at Object.<anonymous> (/usr/local/lib/node_modules/electron/dist/Electron.app/Contents/Resources/default_app.asar/main.js:325:5)
at Object.<anonymous> (/usr/local/lib/node_modules/electron/dist/Electron.app/Contents/Resources/default_app.asar/main.js:361:3)
一直报这个错误,以为是nodejs或者electron版本不对,重新安装几遍和各个版本,还是这样!
查看mist下的README.MD,按里面的执行一下,至少钱包界面是出来了,不过一直在等待,可能是挖矿被我停了吧,重新启动挖矿,能正常看到界面里区块等的变化了!
Chaim:mist Chaim$ yarn dev:electron . --rpc /Users/Chaim/Documents/workspace/ethPri/geth.ipc
yarn run v1.3.2
$ electron -r babel-register main.js . --rpc /Users/Chaim/Documents/workspace/ethPri/geth.ipc
[2017-12-28T23:34:12.495] [INFO] Settings - Running in production mode: false
[2017-12-28T23:34:12.675] [INFO] EthereumNode - undefined null 'fast'
[2017-12-28T23:34:12.677] [INFO] EthereumNode - Defaults loaded: geth main fast
[2017-12-28T23:34:12.932] [INFO] main - Starting in Mist mode
[2017-12-28T23:34:13.039] [INFO] Db - Creating db: /Users/Chaim/Library/Application Support/Electron/mist.lokidb
[2017-12-28T23:34:13.049] [INFO] Db - Loading db: /Users/Chaim/Library/Application Support/Electron/mist.lokidb
[2017-12-28T23:34:13.055] [INFO] Windows - Creating commonly-used windows
[2017-12-28T23:34:13.056] [INFO] Windows - Create secondary window: loading, owner: notset
界面如下:
观察合约
Mist钱包中有个观察合约,可以把在geth环境中测试的合约加进去,这样就不用重新增加合约了
点击新增观察合约,填入合约地址,合约地址通过geth命令行取:
> nbico.address
"0x0b6cdea9367ab0ab655748a00ac04cdf96a075dd"
合约名称:这个就可以自由填了
JSON界面,这个通过geth取到的是带“...”的,没法用,需要去browser-solidity中点Details获取,abi那一块点复制图标,如下图:
实际复制的内容如下:
[
{
"constant": true,
"inputs": [],
"name": "organizer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"type": "function",
"stateMutability": "view"
},
{
"constant": false,
"inputs": [],
"name": "destory",
"outputs": [],
"payable": false,
"type": "function",
"stateMutability": "nonpayable"
},
{
"inputs": [],
"payable": false,
"type": "constructor",
"stateMutability": "nonpayable"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "backer",
"type": "address"
},
{
"indexed": false,
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"name": "isContribution",
"type": "bool"
}
],
"name": "FundTransfer",
"type": "event"
}
]
添加成功后,可以存入以太币、看合约事件等。
看合约事件时,发现其中的事件被越来越多的区块确认,这就是说的交易需要多少笔确认吧!
参考
http://blog.csdn.net/vinsuan1993/article/details/77144263
http://www.8btc.com/blockchainclassroom7
http://blog.csdn.net/misshqzzz/article/details/77834856
yard与npm
http://blog.csdn.net/mjzhang1993/article/details/70092902
***************************************
作者简介
老鱼,从事互联网技术十余年,知名上市公司CTO;炒股十余年,从亏损几十万到略有盈利;顺应创业大潮多次创业,在传统行业和手游行业有所获;研习佛学易理,性格淡泊清净!
欢迎有兴趣的朋友加入微信群和电报群,一起学习探讨,一起实现咱们的小目标!
- 百分百区块链群,微信扫码后会再显示一个二维码,长按图片“识别图中二维码”加入!
- 电报群 https://t.me/blockchain100 希望以后能给先加入的人送一份大礼!