美文网首页以太坊区块链开发入门
部署以太坊数字货币钱包

部署以太坊数字货币钱包

作者: 大胡子的机器人 | 来源:发表于2018-05-24 16:26 被阅读25次

环境:windows下搭建的以太坊私链
由于web3的局限性,我们采用https://github.com/ConsenSys/eth-lightwallet作为我们的主要框架。

一、搭建以太坊私链环境geth

具体操作这里就不说啦,这里大概介绍一下遇到的问题
1、geth与ethereumWallet有什么区别
geth是命令行操作的,可以进行以太坊的很多操作,如:挖矿、rpc等等
ethereumWallet只是钱包功能,可以查询、转账、创建合约。
2、私链启动的时候报错,创世区块没有设置好,很多文章是很旧的,所以创世区块初始化失败了。

{
 "config": {
    "chainId": 10,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
},
"alloc"      : {},
"coinbase"   : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x02000000",
"extraData"  : "",
"gasLimit"   : "0x2fefd8",
"nonce"      : "0x0000000000000042",
"mixhash"    :   "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp"  : "0x00"
}

如果还有其他错误,可以参考:
https://blog.csdn.net/superswords/article/details/75049323
3、若本地启动成功后,钱包打开初始化界面的右上角应该有PRIVATE-NET标识

image.png
4、在私链创建成功后,新创建的地址没有金额,怎么才可以有金额?
挖矿可以解决,但是可能需要好几分钟。请注意设置矿工的地址设置
在geth控制台设置:miner.setEtherbase(eth.coinbase);//eth.coinbase就是你想设置的钱包地址

二、下载clone eth-lightwallet代码,并运行在线钱包demo webwallet.html

image.png

1、注意里面的配置host,我开始配置为我的远程服务器的节点,但是失败了,现在改为链接本地的节点

function setWeb3Provider(keystore) {
    var web3Provider = new HookedWeb3Provider({
        host: "http://127.0.0.1:8545",
      transaction_signer: keystore
    });
    web3.setProvider(web3Provider);
  }

测试方法:geth attach http://127.0.0.1:8545

2、启动geth命令,留意--rpc --rpccorsdomain "*"字段意思

geth -datadir "./chain" --port "30303" --rpc --rpccorsdomain "*" --rpcapi "db,eth,net,web3" --nodiscover console 2>>eth_output.log

--rpc 启动HTTP-RPC服务(基于HTTP的)
--rpcaddr value HTTP-RPC服务器监听地址(default: "localhost")
--rpcport value HTTP-RPC服务器监听端口(default: 8545)
--rpcapi value 指定需要调用的HTTP-RPC API接口,默认只有eth,net,web3
--ws 启动WS-RPC服务(基于WebService的)
--wsaddr value WS-RPC服务器监听地址(default: "localhost")
--wsport value WS-RPC服务器监听端口(default: 8546)
--wsapi value 指定需要调用的WS-RPC API接口,默认只有eth,net,web3
--wsorigins value 指定接收websocket请求的来源
--ipcdisable 禁掉IPC-RPC服务
--ipcpath 指定IPC socket/pipe文件目录(明确指定路径)
--rpccorsdomain value 指定一个可以接收请求来源的以逗号间隔的域名列表(浏览器访问的话,要强制指定该选项)
--jspath loadScript JavaScript根目录用来加载脚本 (default: ".")
--exec value 执行JavaScript声明
--preload value 指定一个可以预加载到控制台的JavaScript文件,其中包含一个以逗号分隔的列表

3、智能合约与钱包账户之间的关系
在ethereumwallet上可以发布自己编写的solidity合约代码,每一个合约都有自己的钱包地址,合约相当于也是一个独立个体,只不过有已经写好的代码逻辑约束,代码不同,自动计算出来的gas小费也不一样。简单来说:智能合约除了可以转入转出金额,还可以例如投票、自动合约交易等功能

相关文章

网友评论

    本文标题:部署以太坊数字货币钱包

    本文链接:https://www.haomeiwen.com/subject/cnbjjftx.html