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

部署以太坊数字货币钱包

作者: 大胡子的机器人 | 来源:发表于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