array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 win7环境搭建以太坊私链 - 爱码网

如何创建私链:

创建创世配置文件:

首先需要创建一个“创世”json配置文件,此文件描述了创世区块的一些参数。下面就是文件中的内容:

{
    "coinbase": "0x0000000000000000000000000000000000000000", 
    "config": {
        "homesteadBlock": 5
    }, 
    "difficulty": "0x20000", 
    "extraData": "0x", 
    "gasLimit": "0x2FEFD8", 
    "mixhash": "0x00000000000000000000000000000000000000647572616c65787365646c6578", 
    "nonce": "0x0", 
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", 
    "timestamp": "0x00", 
    "alloc": {
        "dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6": {
            "balance": "100000000000000000000000000000"
        }
    }
}

将上面这段代码复制到一个文本文件里并起名为genesis.json 
win7环境搭建以太坊私链

创世!:

为了不和主链的数据冲突,这里建议建立自己的私链数据文件夹。在我的电脑上在E盘建了一个EthDBSpace作为以太坊实验工作区,并在里面创建了一个PrivChain文件夹作为我的第一个私链的数据存放文件夹

win7环境搭建以太坊私链 
这里为了方便管理将genesis.json放在了EthDBSpace文件夹下

  • 打开Windows命令行 
    win7环境搭建以太坊私链
  • 键入如下命令
geth --datadir "E:\EthDBSpace\PrivChain" init "E:\EthDBSpace\genesis.json"

 

–datadir 选项用来指定我们私链的数据目录。在我的电脑上是E:\EthDBSpace\PrivChain 
init 命令为创世命令,后面紧跟着我们的创世配置文件路径。
  • 点击回车后执行结果如下 
    win7环境搭建以太坊私链
此时创世完成!

创建账户:

为了在私链上做实验,我们还需要在私链上建立自己的账户

  • Windows命令行键入
geth --datadir "E:\EthDBSpace\PrivChain" console

  

我们由于已经创世成功所以第二次进入客户端时我们不用再次指定genesis.json文件路径,而是直接–datadir 指明私链数据路径即可。 
console命令用来开启geth的命令行。
  • 点击回车后,客户端会先经过一阵初始化。在命令提示符出现后,说明已经进入geth console 
    win7环境搭建以太坊私链
  • 在geth命令行中键入
personal.newAccount('Your Password')

  

personal.newAccount 函数用来创建账户,其中参数为账户密码
  • 点击回车后会出现 
    win7环境搭建以太坊私链
账户创建成功后会在命令下方以绿色字符列明创建账户的地址,也即账户的公钥
  • 我们可以先查下账户余额,在geth命令行中键入:
my=eth.accounts[0]
eth.getBalance(my)

  

my=eth.accounts[0],此句的目的是将我们刚创建的账户地址赋值给my变量。这样可以简化后续账户地址输入。其中eth.accounts记录了本机上所有账户地址。由于我们第一次创建账户,所以目前电脑上只有一个账户。所以这里我们用eth.accounts[0]提取第一个账户地址。eth.getBalance函数用来获得账户余额,参数填入账户地址。这里的my变量记录的就是第一个账户的地址。
  • 执行结果如下: 
    win7环境搭建以太坊私链 
    可以看到此时账户里没钱。在以太坊上转账、发布合约、执行合约都需要费钱。而钱来自挖矿,下面我们先挖矿赚些钱。

挖矿赚钱:

目前的以太坊使用POW(Proof of Work)共识机制来激励人们去维护账本记账。此机制的核心是系统出一道题,让全网有意记账节点来求解,第一个求解出题目答案的节点会获得新区块的记账权并获得eth作为奖励。其中有意记账的节点叫做矿工节点。下面我们在我们的私链上挖矿赚一些钱便于我们后续的转账实验。

  • 继续在geth命令行键入如下命令开始挖矿:
miner.start()
  • 点击回车后会看见客户端开始挖矿,命令行里不断显示出块进度 
    win7环境搭建以太坊私链
由于是私链,目前就一个节点在挖矿不存在竞争。所以开挖若干秒即可停止挖矿,挖得得钱已经可以进行后续实现。
  • 键入如下命令停止挖矿
miner.stop()
  • 此时再次查看我们的账户余额
eth.getBalance(my)

  

会看到我们的余额多了一大笔钱,显示的余额以以太坊货币单位wei来计算。关于wei到eth的换算表参见http://www.ethdocs.org/en/latest/ether.html

  

转账实验:

下面我们尝试下在我们自己创建的私链上进行转账 
- 先创建第二账户,继续在geth命令行键入如下命令

personal.newAccount('123')
other=eth.accounts[1]
将第二账户地址赋值给other变量,便于后续输入
  • 在转账前需要对转出账户进行解锁,继续在geth命令行键入如下命令
personal.unlockAccount(my)

  

由于目前是my账户中有钱,other账户没钱,所以这里解锁我们的转出账户my
  • 回车后会提示输入密码,我这个账户的密码为123,输入后回车即可解锁 
    win7环境搭建以太坊私链
  • 开始转账,在geth命令行键入
eth.sendTransaction({from:my, to:other, value:10000})

  

其中from为转出账户,这里我们输入记录了第一个账户地址的my变量 
to为转入账户,这里我们输入记录额第二个账户地址的other变量 
value指定了转出金额,单位为wei,这里我们转出10000wei
  • 键入后结果如下 
    win7环境搭建以太坊私链

 

可以看到转账请求已经提交
  • 此时我们再次查看两个账户的余额
eth.getBalance(my)
eth.getBalance(other)
  • 查询余额结果如下: 
    win7环境搭建以太坊私链
    此时会发现一个奇怪现象,前面的转账请求已经提交,为什么两个账户的余额没有发生任何变化?回想刚才我们讲到的,以太坊使用POW共识激励矿工记账,而由于我们创建的是私链目前只有我们一个节点,所以此时并没有其它节点参与记账。所以我们需要通过挖矿把这笔转账记录到块中。
  • 继续挖矿,在geth 控制台中键入
miner.start()
  • 等待挖一会后停止挖矿
miner.stop()

  再次查询,发现转账已到位 
win7环境搭建以太坊私链

 

 

 

 

 

 

 

转载自http://blog.csdn.net/weixin_40401264/article/details/78095222

 

相关文章: