精华内容
下载资源
问答
  • 区块链环境搭建

    千次阅读 2018-04-14 18:04:38
    1.FISCO BCOS区块链操作手册(一定要先看配置要求!!!)https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/doc/manual/README.md区块链技术:智能合约入门https://segmentfault.com/a/11900000129966362.推荐...

    1.FISCO BCOS区块链操作手册(一定要先看配置要求!!!)

    https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/doc/manual/README.md

    区块链技术:智能合约入门

    https://segmentfault.com/a/1190000012996636

    2.推荐使用Centos系统,我之前使用ubuntu 16.04出错较多,因为部分文件的版本较低,更新后还需要更换路径

    系统镜像文件(个人更倾向于虚拟机,便于切换和搜索信息)

    http://101.110.118.27/isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso

    3.centos在配置的过程中,需要配置网络等信息

    https://www.cnblogs.com/Dream-times/p/7768258.html

    4.centos设置成自动获取ip地址方式(DHCP)

    https://jingyan.baidu.com/article/4f34706ecef165e387b56dc1.html?qq-pf-to=pcqq.group

    5.因为虚拟机上和本机复制粘贴信息有问题(双向等方式并无实际作用)采用了一个exe软件:PuTTY

    可以方便的实现双向的指令复制(提醒:指令不要直接复制粘贴,先放入一个txt文本中,确认是需要的指令,不然可能会引发意想不到的结果)。

    使用该exe需要虚拟机的系统的IP地址,在进入虚拟机后查询即可。

    6.安装智能合约的编译器 参考1中的文本

    7.可能遇到的问题

    !!!在root下执行

    yum命令不能使用的相关错误

    https://blog.csdn.net/rachel_luo/article/details/8692744

    centos安装cmake3(我采用的是第三种方法)

    https://blog.csdn.net/Imagine_Dragon/article/details/78398600

    CentOS配置本地yum源/阿里云yum源/163yuan源,并配置yum源的优先级

    https://blog.csdn.net/kangvcar/article/details/73477730

    8.以上问题都OK后,开始安装centos的依赖包,之后就按照1中的顺序来

    推荐几个Linux下的命令:

    ls 显示文件列表

    pwd 查看默认工作目录的完整路径

    id 查看显示目前登陆账户的uid和gid及所属分组及用户名 

     ps -ef|grep node    ps -ef(查看当前进程)     |grep node 查询有关node的信息

    netstat -na |grep 8545     netstat -na 来显示所有连接的端口并用数字表示   grep 8545 查询8545端口号  出现LISTEN 说明正在被监听

    cd ..返回上层目录

    9.编译一个demo文件

    git clone "https://github.com/cristicmf/bcos-qucik-start-demo"

    cd bcos-qucik-start-demo
     cd startDemo
     npm install
     babel-node index.js





    展开全文
  • 区块链环境搭建——错误笔记 1.安装依赖 apt install 出错 E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), ...

    区块链环境搭建——错误笔记

    1.安装依赖 apt install 出错

    E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
    E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
    
    

    解决方法1:

    ps pat进程 使用kill杀死

    解决方法2:

    sudo rm /var/cache/apt/archives/lock
    sudo rm  /var/lib/dpkg/lock-frontend
    

    强制删除锁 此路径为提示中/var/lib/dpkg/的lock-frontend锁文件

    安装完毕 运行git命令测试安装是否成功

    2.配置文件生效后 终端字体变白

    解决方法:

    编辑 .bashrc 配置文件

    编辑 vi .bashrc  找到#force_color_prompt=yes 去掉注释 (前面的#)
    配置文件生效 source .bashrc
    
    展开全文
  • 以太坊(ETH)的出现开启了区块链的2.0时代,要进行ETH的开发和测试,我们先要搭建起来ETH的测试区块链网络。在测试环境中,我们可以直接通过参数配置,生成创世区块,设置挖矿难度,设置gas消耗,执行转账交易,定义...

    比特币吸金之道系列文章,由计算机黑客发明的网络货币,无国界,无政府,无中心。没有政府滥发货币,没有通货膨胀。在全球计算机网络中,自由的实现货币兑换和流通。

    本系列文章只讲程序和策略,不谈挖矿…

    关于作者:

    • 张丹(Conan), 程序员/Quant: Java,R,Nodejs
    • blog: http://blog.fens.me
    • email: bsspirit@gmail.com

    转载请注明出处:
    http://blog.fens.me/bitcoin-geth-testnet

    前言

    以太坊(ETH)的出现开启了区块链的2.0时代,要进行ETH的开发和测试,我们先要搭建起来ETH的测试区块链网络。在测试环境中,我们可以直接通过参数配置,生成创世区块,设置挖矿难度,设置gas消耗,执行转账交易,定义智能合约等的操作。

    目录

    1. 搭建测试区块链
    2. 开发挖矿
    3. 第一笔转账
    4. 多节点网络

    1. 搭建测试区块链

    由于在以太坊公链上做任何操作,都需要消耗以太币(eth),对于开发者来说,很有必要在本地自行搭建一个测试区块链网络,进行智能合约的开发,最后再将开发好的合约部署到公链上。私有区块链不同于以太坊公链,给我们很多的自由度,直接可能通过参数配置,生成创世区块,设置挖矿难度,设置gas消耗,执行转账交易,定义智能合约等的操作,这些都需要我们手动进行设置。

    私有区块链的搭建,也是基于geth客户端来完成的,geth的安装过程,请参考文章 geth以太坊节点安装

    下面,我们就用geth客户端,开始搭建测试区块链。创建测试节点的文件存储目录。

    
    > mkdir /data0/eth-test/
    > cd /data0/eth-test/
    

    新建配置文件genesis.json

    
    > vi genesis.json
    {
     "nonce": "0x0000000000000042",
     "timestamp": "0x0",
     "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
     "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
     "extraData": "0x",
     "gasLimit": "0x80000000",
     "difficulty": "0x3",
     "coinbase": "0x3333333333333333333333333333333333333333",
     "config":{
        "chainId": 55,
        "homesteadBlock": 0,
        "eip155Block": 0
     },
     "alloc": {}
    }
    
    

    参数设置:

    • nonce:64位随机数,用于挖矿
    • timestamp:创世块的时间戳
    • parentHash:上一个区块的hash值,因为是创世块,所以这个值是0
    • mixhash:与 nonce 配合用于挖矿,由上一个区块的一部分生成的 hash。
    • extraData:附加信息,任意填写
    • gasLimit :对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们就测试链,所以随意填写。
    • difficulty:难度值,越大越难
    • coinbase:矿工账号,第一个区块挖出后将给这个矿工账号发送奖励的以太币。
    • alloc: 预设账号以及账号的以太币数量,测试链挖矿比较容易可以不配置
    • chainId 指定了独立的区块链网络 ID,不同 ID 网络的节点无法互相连接。

    初始化区块链,生成创世区块和初始状态。

    
    > geth --datadir=/data0/eth-test init /data0/eth-test/genesis.json
    INFO [06-26|08:10:32.943749] Maximum peer count                       ETH=25 LES=0 total=25
    INFO [06-26|08:10:32.944172] Allocated cache and file handles         database=/data0/eth-test/geth/chaindata cache=16 handles=16
    INFO [06-26|08:10:32.989586] Persisted trie from memory database      nodes=0 size=0.00B time=3.877µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
    INFO [06-26|08:10:32.989983] Successfully wrote genesis state         database=chaindata                      hash=4a306e…543a63
    INFO [06-26|08:10:32.990028] Allocated cache and file handles         database=/data0/eth-test/geth/lightchaindata cache=16 handles=16
    INFO [06-26|08:10:33.036685] Persisted trie from memory database      nodes=0 size=0.00B time=3.258µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
    INFO [06-26|08:10:33.037027] Successfully wrote genesis state         database=lightchaindata                      hash=4a306e…543a63
    

    运行日志,包括了允许最大点对点连接当前节点数为total=25,普通节点连接数ETH=25,LES轻节点连接数0。数据库存储的目录在 /data0/eth-test/geth/chaindata ,当前存活的节点 livenodes=1。

    参数说明

    • datadir, 设置当前区块链网络数据存放的位置
    • init,初始化,生成创世区块

    接下来,启动测试节点,并进入 geth 命令行界面。

    
    > geth --identity "TestNode" --rpc --rpcport "8545" --datadir=/data0/eth-test --port "30303" --nodiscover console
    INFO [06-26|08:14:00.916738] Maximum peer count                       ETH=25 LES=0 total=25
    INFO [06-26|08:14:00.918148] Starting peer-to-peer node               instance=Geth/TestNode/v1.8.12-unstable-f1986f86/linux-amd64/go1.10.3
    INFO [06-26|08:14:00.918235] Allocated cache and file handles         database=/data0/eth-test/geth/chaindata cache=768 handles=512
    INFO [06-26|08:14:00.979836] Initialised chain configuration          config="{ChainID: 55 Homestead: 0 DAO:  DAOSupport: false EIP150:  EIP155: 0 EIP158:  Byzantium:  Constantinople:  Engine: unknown}"
    INFO [06-26|08:14:00.979915] Disk storage enabled for ethash caches   dir=/data0/eth-test/geth/ethash count=3
    INFO [06-26|08:14:00.979943] Disk storage enabled for ethash DAGs     dir=/root/.ethash               count=2
    INFO [06-26|08:14:00.980023] Initialising Ethereum protocol           versions="[63 62]" network=1
    INFO [06-26|08:14:00.980566] Loaded most recent local header          number=0 hash=4a306e…543a63 td=3
    INFO [06-26|08:14:00.980634] Loaded most recent local full block      number=0 hash=4a306e…543a63 td=3
    INFO [06-26|08:14:00.980662] Loaded most recent local fast block      number=0 hash=4a306e…543a63 td=3
    INFO [06-26|08:14:00.980842] Regenerated local transaction journal    transactions=0 accounts=0
    INFO [06-26|08:14:00.981818] Starting P2P networking 
    INFO [06-26|08:14:00.982303] RLPx listener up                         self="enode://15653a443e91b04040fe2731e0a0fa556a1d050580fa587110b17460cf471a8c3b42ac08dbc3d84a404f8c102ae35b28d9e2c1b9f2eae4c828a0dfa21c1f2117@[::]:30303?discport=0"
    INFO [06-26|08:14:00.985029] IPC endpoint opened                      url=/data0/eth-test/geth.ipc
    INFO [06-26|08:14:00.985503] HTTP endpoint opened                     url=http://127.0.0.1:8545    cors= vhosts=localhost
    Welcome to the Geth JavaScript console!
    
    instance: Geth/TestNode/v1.8.12-unstable-f1986f86/linux-amd64/go1.10.3
     modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0
    
    > 
    
    • identity, 自定义的节点名字
    • rpc , 允许 HTTP-RPC 访问
    • rpcport , HTTP_RPC的访问端口,默认为8545
    • port , 网络监听端口,默认为30303
    • datadir, 设置当前区块链网络数据存放的位置
    • console, 启动命令行模式,可以在Geth中执行命令
    • nodiscover, 私有链地址,不会被网上看到

    这样我们就把一个测试网络启动起来了,由于是单节点,网络没有其他的节点,所以并没有直接的数据输出。

    2. 开始挖矿

    接下来,我们在自己搭建的私有网络中,开始做常规ETH的操作。

    2.1 创建账号

    创建一个新账号,密码为123456,账号的地址为:0x9cac40f650e2cbe459dcb32c7c23103497134467。

    
    > personal.newAccount("123456")
    "0x9cac40f650e2cbe459dcb32c7c23103497134467"
    

    另一种方式,生成一个新账号。

    
    > personal.newAccount()
    Passphrase: 
    Repeat passphrase: 
    "0x762a2e28c5dbab9cd31369db5f3cbb48f421c0e3"
    

    查看所有账号

    
    > eth.accounts
    ["0x9cac40f650e2cbe459dcb32c7c23103497134467", "0x762a2e28c5dbab9cd31369db5f3cbb48f421c0e3"]
    

    2.2 挖矿

    接下来,我们开始挖矿。挖矿,就是产生以太币的过程。之前在genesis.json文件中,设置的difficulty=3,挖矿难比较低,很快就是挖出以太币来。

    
    # 开始挖矿
    > miner.start(1)
    INFO [06-26|08:19:58.086688] Updated mining threads                   threads=1
    INFO [06-26|08:19:58.086828] Transaction pool price threshold updated price=18000000000
    
    # 矿工账号:如果有多个账户的情况下,挖矿获得的eth,会自动计入第一账户中。
    INFO [06-26|08:19:58.086887] Etherbase automatically configured       address=0x9cac40F650E2CBE459dcb32c7c23103497134467   
    INFO [06-26|08:19:58.087015] Starting mining operation 
    
    # 开始探索新区块,没有交易内容
    INFO [06-26|08:19:58.087793] Commit new mining work                   number=1 txs=0 uncles=0 elapsed=659.441µs            
    
    # 成功发现新区块
    INFO [06-26|08:19:58.451612] Successfully sealed new block            number=1 hash=c120d3…23dad2                          
    
    #  确认挖到新区块
    INFO [06-26|08:19:58.452182] ? mined potential block                  number=1 hash=c120d3…23dad2                      
    INFO [06-26|08:19:58.45237] Commit new mining work                   number=2 txs=0 uncles=0 elapsed=165.519µs
    INFO [06-26|08:20:00.683558] Successfully sealed new block            number=2 hash=011b1c…100594
    INFO [06-26|08:20:00.68399] ? mined potential block                  number=2 hash=011b1c…100594
    INFO [06-26|08:20:00.684181] Commit new mining work                   number=3 txs=0 uncles=0 elapsed=111.601µs
    INFO [06-26|08:20:09.965339] Successfully sealed new block            number=3 hash=173ea5…c059ef
    INFO [06-26|08:20:09.965789] ? mined potential block                  number=3 hash=173ea5…c059ef
    INFO [06-26|08:20:09.966091] Commit new mining work                   number=4 txs=0 uncles=0 elapsed=246.371µs
    INFO [06-26|08:20:11.622999] Successfully sealed new block            number=4 hash=56240d…0910a3
    
    // 省略
    
    INFO [06-26|08:20:16.264066] Commit new mining work                   number=10 txs=0 uncles=0 elapsed=155.89µs
    INFO [06-26|08:20:16.466436] Successfully sealed new block            number=10 hash=819037…fbcd88
    INFO [06-26|08:20:16.466774] ? block reached canonical chain          number=5  hash=7f1015…f53c57
    INFO [06-26|08:20:16.466794] ? mined potential block                  number=10 hash=819037…fbcd88
    INFO [06-26|08:20:16.466965] Commit new mining work                   number=11 txs=0 uncles=0 elapsed=92.726µs
    
    # 停止挖矿
    > miner.stop()
    true
    

    开始挖了几秒,就产生了10个区块。查看账户资金为50000000000000000000 wei。第一个账户为矿工账号,第二个账户是一个普通账号。

    
    > eth.getBalance(eth.accounts[0])
    50000000000000000000
    > eth.getBalance(eth.accounts[1])
    0
    

    由于Wei是最小的单位,我们把Wei转换为ether为单位,比较好看,就是为 50 ether = 50000000000000000000/10^18

    
    > web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")
    50
    

    转换单位

    • Wei = 10^0 Wei
    • Ada = 10^3 Wei
    • Babbage = 10^6 Wei
    • Shannon = 10^9 Weiv
    • Szabo = 10^12 Wei
    • Finney = 10^15 Wei
    • Ether = 10^18 Wei
    • Einstein = 10^21 Wei
    • Douglas = 10^42 Wei

    2.3 查看区块高度

    下一步,我们查看一下区块高度,并分析一下区块的细节。

    
    # 查看区块高度
    > eth.blockNumber
    10
    
    # 查看第10个区块的细节
    > eth.getBlock(10)
    {
      difficulty: 131648,
      extraData: "0xd88301080c846765746888676f312e31302e33856c696e7578",
      gasLimit: 2126604064,
      gasUsed: 0,
      hash: "0x819037bcc65eb789eca82fcc3d6c686852ab8297df6396cffa6cfffeaffbcd88",
      logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
      miner: "0x9cac40f650e2cbe459dcb32c7c23103497134467",
      mixHash: "0x311cd5ef45d9295d8c1b1b8778fb05b0e49dc6cae5971763c2e2d7e3d20bd895",
      nonce: "0x0b1aae8070cdff77",
      number: 10,
      parentHash: "0x1c5609a70d36a460234b95116fcc391e49890c5082af41d8cba3b5b366aa0028",
      receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      size: 537,
      stateRoot: "0x0917e990c98b3daf316d0d38a4a2eefd0ad30436bab8ae61adb1ca24723eea81",
      timestamp: 1529972416,
      totalDifficulty: 1313603,
      transactions: [],
      transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
      uncles: []
    }
    

    第10个区块为当前的最后一个区块,挖矿难度difficulty=131648,没有交易gasUsed=0,当前块的hash值hash: “0x819037bcc65eb789eca82fcc3d6c686852ab8297df6396cffa6cfffeaffbcd88”,,上一个块的地址parentHash: “0x819037bcc65eb789eca82fcc3d6c686852ab8297df6396cffa6cfffeaffbcd88”,矿工账号miner: “0x9cac40f650e2cbe459dcb32c7c23103497134467”,区块高度number=10。

    3. 第一笔转账

    接下来,让我完成第一笔转账。从矿工账号转账30ether到第二个账号。

    
    > eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(30,"ether")})
    Error: authentication needed: password or unlock
        at web3.js:3143:20
        at web3.js:6347:15
        at web3.js:5081:36
        at :1:1
    

    第一次,执行转账操作时,出现错误。需要把转输eth的账号进行解锁,才能转账。

    
    # 解锁账号
    > personal.unlockAccount(eth.accounts[0])
    Unlock account 0x9cac40f650e2cbe459dcb32c7c23103497134467
    Passphrase: 
    true
    
    # 再次转账
    > eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(30,"ether")})
    INFO [06-26|08:26:44.060461] Submitted transaction                    fullhash=0x8d6d1eb3c1c82be1f419d8f772048644361c41362fd8de27f8252470f975d6bb recipient=0x762A2e28C5DbaB9cD31369DB5f3CBB48f421C0E3
    "0x8d6d1eb3c1c82be1f419d8f772048644361c41362fd8de27f8252470f975d6bb"
    

    交易日志,交易的hash值fullhash=0x8d6d1eb3c1c82be1f419d8f772048644361c41362fd8de27f8252470f975d6bb,收款账号recipient=0x762A2e28C5DbaB9cD31369DB5f3CBB48f421C0E3。

    我们提交了第一笔的转账,查看2个账户的余额。

    
    > eth.getBalance(eth.accounts[0])
    50000000000000000000
    > eth.getBalance(eth.accounts[1])
    0
    

    账户的余额并没有发生变化,这是因为基于区块链的转账操作需要矿工确认才能完成,矿工确认的过程是要经过挖矿的。我们的转账的操作的任务已经提交,但是交易并未完成,还需要矿工挖矿提交新的区块,在区块中加入这次转账交易,提交新的区块全网的节点(按百分比算,具体还没细看源代码)确认完成后,交易才正式生效。

    由于链上只有我们自己,我们要重新开起挖矿程序。

    
    # 开始挖矿
    > miner.start(1)
    INFO [06-26|08:27:24.712255] Updated mining threads                   threads=1
    INFO [06-26|08:27:24.712434] Transaction pool price threshold updated price=18000000000
    INFO [06-26|08:27:24.712617] Starting mining operation 
    
    # 探索新的区块,包含一个操作信息txs=1
    INFO [06-26|08:27:24.713512] Commit new mining work                   number=11 txs=1 uncles=0 elapsed=808.72µs
    INFO [06-26|08:27:27.638518] Successfully sealed new block            number=11 hash=68495b…35d4fe
    INFO [06-26|08:27:27.638986] ? block reached canonical chain          number=6  hash=3617e8…0dd7f5
    INFO [06-26|08:27:27.639006] ? mined potential block                  number=11 hash=68495b…35d4fe
    INFO [06-26|08:27:27.639245] Commit new mining work                   number=12 txs=0 uncles=0 elapsed=227.705µs
    INFO [06-26|08:27:28.199602] Successfully sealed new block            number=12 hash=96fd37…37c016
    INFO [06-26|08:27:28.199963] ? block reached canonical chain          number=7  hash=a8d6d5…e6036d
    INFO [06-26|08:27:28.19998] ? mined potential block                  number=12 hash=96fd37…37c016
    INFO [06-26|08:27:28.200427] Commit new mining work                   number=13 txs=0 uncles=0 elapsed=276.033µs
    INFO [06-26|08:27:29.766971] Successfully sealed new block            number=13 hash=a13201…c051c8
    INFO [06-26|08:27:29.767429] ? block reached canonical chain          number=8  hash=16222d…7a9445
    INFO [06-26|08:27:29.767447] ? mined potential block                  number=13 hash=a13201…c051c8
    INFO [06-26|08:27:29.767572] Commit new mining work                   number=14 txs=0 uncles=0 elapsed=110.439µs
    INFO [06-26|08:27:30.302882] Successfully sealed new block            number=14 hash=e1ab15…e44665
    INFO [06-26|08:27:30.303213] ? block reached canonical chain          number=9  hash=1c5609…aa0028
    INFO [06-26|08:27:30.303243] ? mined potential block                  number=14 hash=e1ab15…e44665
    INFO [06-26|08:27:30.303471] Commit new mining work                   number=15 txs=0 uncles=0 elapsed=114.85µs
    INFO [06-26|08:27:35.685475] Successfully sealed new block            number=15 hash=e1b5a4…1bab9e
    INFO [06-26|08:27:35.686032] ? block reached canonical chain          number=10 hash=819037…fbcd88
    INFO [06-26|08:27:35.686146] ? mined potential block                  number=15 hash=e1b5a4…1bab9e
    INFO [06-26|08:27:35.686523] Commit new mining work                   number=16 txs=0 uncles=0 elapsed=294.263µs
    
    # 停止挖矿
    > miner.stop()
    true
    

    在高度number=11的区块上,我们发现了有一笔转账信息。再次,查看账户余额,发现账户余额发生了变化。

    
    > eth.getBalance(eth.accounts[0])
    45000000000000000000
    > eth.getBalance(eth.accounts[1])
    30000000000000000000
    

    第一个账户变成了 45 ether,第二个账号变成了30 ether。第二个账户余额,正是我们之前设定的转账金额。

    
    # 查看当前块的高度
    > eth.blockNumber
    15
    
    # 第11个区块的细节
    > eth.getBlock(11)
      difficulty: 131072,
      extraData: "0xd88301080c846765746888676f312e31302e33856c696e7578",
      gasLimit: 2124527304,
      gasUsed: 21000,
      hash: "0x68495bf329e886a8043d1af74d145a870ae6aa2d4e42134499b3730e5c35d4fe",
      logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
      miner: "0x9cac40f650e2cbe459dcb32c7c23103497134467",
      mixHash: "0xbbf5053e0409cded11f0c8f1059cad389d366723cb2f6c077d6c71c36d31a254",
      nonce: "0x3cc35610dc92f143",
      number: 11,
      parentHash: "0x819037bcc65eb789eca82fcc3d6c686852ab8297df6396cffa6cfffeaffbcd88",
      receiptsRoot: "0x170861bbc9f17f29b4c8ef046f44fa7435c3ad3a54e752591c87050345c29d31",
      sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      size: 653,
      stateRoot: "0x6e44fbe836ebf62523a37bbbb1beaad0c0802be9ff5c4e7b19c16a1eb4c50112",
      timestamp: 1529972844,
      totalDifficulty: 1444675,
      transactions: ["0x8d6d1eb3c1c82be1f419d8f772048644361c41362fd8de27f8252470f975d6bb"],
      transactionsRoot: "0x98881bb99ed82df9a69726705fb2ac2d1371e9ba992c52ed3b4cd3ee50762d38",
      uncles: []
    }
    

    第11个区块发生了交易,消耗的gas手续费为gasUsed=21000 Wei,交易一共发生1笔transactions=0x8d6d1eb3c1c82be1f419d8f772048644361c41362fd8de27f8252470f975d6bb,矿工账号miner: “0x9cac40f650e2cbe459dcb32c7c23103497134467″。

    总结一下,本文介绍了如何搭建以太坊的私有节点,实现了挖矿的过程,并完了2个账户的第一笔转账操作。下一篇文章,找我了解智能合约的编写。

    转载请注明出处:
    http://blog.fens.me/bitcoin-geth-testnet

    打赏作者

    This entry was posted in 数字货币

    展开全文
  • 前言简单介绍下1、nuls源码包的编译和安装2、nuls docker启动编译nuls源码包源码https://gitee.com/pingfanrenbiji/nuls-v2官方文档https://docs.nuls.io/zh/Guide/g_docker.html#%E9%AB%98%E7%BA%A7%E9%92%B1%E5%8C%85环境支持mvn版本jdk版本介绍一个多版本管理工具jev...

    前言

    简单介绍下

    1、nuls源码包的编译和安装

    2、nuls docker启动

    编译nuls源码包

    源码

    https://gitee.com/pingfanrenbiji/nuls-v2

    官方文档

    https://docs.nuls.io/zh/Guide/g_docker.html#%E9%AB%98%E7%BA%A7%E9%92%B1%E5%8C%85

    环境支持

    1. mvn版本
    533dcabed801f0c157a074e3a22078d5.png
    1. jdk版本
    76fa09431712bb7fee4263a7ae58c83d.png

    介绍一个多版本管理工具jevn

    安装jevn

    brew install jenv
    55be9aa46431a111766aa6a6faa6d510.png
    exec $SHELL -ljenv doctor

    这里会报错

    5e4f0cf569acb7422b773930ea056d32.png

    处理方法

    echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profileecho 'eval "$(jenv init -)"' >> ~/.bash_profileexec $SHELL -ljenv doctor
    859a6fc0d79d8db69c6f4541a7264a3b.png

    启用插件

    jenv enable-plugin exportexec $SHELL -ljenv enable-plugin mavenexec $SHELL -l

    将不同版本的jdk加入jevn环境中

    jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Homejenv add /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
    eacd56c5457d45bd71cd3f58cb324c40.png

    查看jdk版本号

    jenv versions
    23018407308a7f69223263a640b879a0.png

    在不同的作用域切换jdk版本

    • 设置全局模式下的JDK版本
    jenv global 13exec $SHELL -ljava -version
    • Local 在某个工作目录下设置JDK版本,会在当前目录下创建一个.java-version的文件
    jenv local 1.8exec $SHELL -l java -version
    • Shell 设置当前Shell session中的JDK版本
    jenv shell 1.8java -version

    编译并打包

    cd nuls-v2sudo ./release.sh macos
    ef8f30d08c7392e177ff31ca3ed3c6c3.png

    编译打包脚本的大致思路

    80dc51de8126efd7a29b22a5932484fa.png
    895596e4e95353e4adb89586db73fc31.png

    编译成镜像并启动

    从官网下载2.6.0 docker镜像

    https://github.com/nuls-io/nuls-v2/tags
    afdcc482028d49755107097b3fc8015a.png

    启动docker

    8efbb2fbeaf01b4ebc1a292e9de3924d.png
    • 编译docker镜像
    docker build -t nuls:2.6.0 .
    • 启动docker
    docker run     --name nuls-wallet     -d     -p 8001:8001     -p 8002:8002     -p 8003:8003     -p 8004:8004     -p 8006:8006     -v /tmp/data:/nuls/data     -v /tmp/log:/nuls/Logs     nuls:2.6.0        8001 主链协议通信端口 (必选)8002 跨链协议通信端口 (必选)8003 public-service http接口 (可选)8004 http api接口使用端口(可选)8006 网页轻钱包端口 (可选)
    • 查看配置
    6c487c5d901017efe44b52a14ac32438.png

    这里包含了所有的配置

    0e82890c2a5f50a8d85067fe95b4b70c.png
    • 进入钱包命令
    docker exec -it nuls-wallet cmd
    2e9bf8db2c036672b97e4013aaa9338f.png
    • 查看模块启动情况
    docker exec -it nuls-wallet check-status
    8a4973ddf59b5226f4fbc145ace71fdc.png
    • 查看日志
    tail -f /tmp/log/block/chain_1_block.log
    17e394278693bc0727efa65af4c64ba9.png

    可以看到在不断的同步数据

    展开全文
  • 输入apt-get -y install software-properties-common,开始搭建以太坊环境 输入add-apt-repository -y ppa:ethereum/ethereum 输入add-apt-repository -y ppa:ethereum/ethereum-dev 输入apt-get update ...
  •  强烈建议新手使用Remix来进行开发,Remix是一个基于浏览器的Solidity编译部署环境,就可以不用安装Solidity,在线Remix连接如下: http://remix.ethereum.org  在线环境由于网络的原因可能打开比较慢,也可以...
  • (一) 树莓派,安卓手机(LinuxDeploy),Linux Geth 私链搭建,安装,配置,运行 本文档为混合教程,为 Geth 的私链搭建教程,目标为构建 windows 电脑,linux ...##关键词:安卓手机配置区块链,LinuxDeploy ...
  • 1. 环境搭建 2. 环境搭建起来后,环境架构介绍 3. 环境如何用 4. 部署 Chaincode 5. 智能合约的调用
  • 文章目录composer 搭建过程搭建过程中修改的地方修改一(执行 startFabric.sh 脚本时)修改二(执行 createPeerAdminCard.sh 脚本时)修改三(执行 createPeerAdminCard.sh 脚本时)修改四(执行 yo hyperledger-...
  • vi /etc/profile //配置环境变量(文件末尾加上这三句),所有环境变量配置三句: export GOROOT=/usr/local/go #你的go语言包的位置 export PATH=$PATH:/usr/local/go/bin #添加go语言包的bin到path变量里 export ...
  • 文章地址:http://blog.lixf.cn/essay/2016/09/02/ethereum-1/
  • 区块链开发环境搭建

    2018-11-27 14:25:27
    主要总结在基于Ubuntu14.04系统上搭建区块链开发平台的过程。目前搭建区块链开发环境还是比较复杂,推荐使用Mac OS X和Linux操作系统,目前不建议使用Windows,可能会碰到各种各样的问题,最后导致放弃。
  • Hyperledger fabric 1.1区块链环境搭建

    千次阅读 2018-05-21 15:40:18
    由于近期公司在做基于IBM的Hyperledger Fabric开源区块链项目,至此基础的环境搭建以及相关测试也已经告一段路,在此做一些笔记,同时也希望可以让更多的人看到,大家相互学习。 一、前提条件 按照IBM官网给出...
  • 区块链fabric环境搭建

    2021-01-07 10:49:56
    在 WIndows10 部署 Hyperledger Fabric 开发环境 准备工作 虚拟机 开启服务:程序与功能中开启 Hyper-V、虚拟机平台,并重启 Windows 安装 VMware 和 Ubuntu 20.04 LTS Server 什么额外的软件都不要安 更换清华...
  • 区块链开发环境搭建总结

    千次阅读 2017-04-12 23:38:14
    这篇博客是我在搭建区块链开发环境的经验,遇到的问题和解决方法,希望能通过这篇博客帮助到需要的人
  • 区块链技术:智能合约入门 https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/doc/manual/README.md ubuntu 16.04 安装git的方法 ... 区块链环境要求的硬件配置 https://github...
  • 以太坊区块链浏览器搭建

    千次阅读 2019-09-04 09:26:43
    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 当然,读者若要实践,那么电脑上必须已经搭建好了geth,并且命令“geth version”能显示版本...笔者搭建环境:ubuntu16 + npm、...
  • faric区块链浏览器搭建

    千次阅读 2019-10-26 09:50:35
    1. 系统环境 为了便于描述各个服务器间的配置进行以下名称约定: 2. 部署GO语言环境 Golang最低版本要求:1.10.x,当前安装版本:1.11;至于go的下载地址去其官网即可。 2.1. 解压文件 tar zxvpf go1.11.linux-amd64...
  • 区块链搭建比特币私链编译安装准备环境准备创建文件夹下载源码编译可执行文件比特币配置文件准备运行私链启动节点测试节点启动节点创建账户创建新地址导出私钥挖矿查看余额按地址分组查询余额查询钱包余额转账 ...
  • 区块链环境部署

    2018-05-07 10:05:59
    详细描述了区块链环境搭建,在linux环境下安装相关软件,安装成功的结果界面
  • i)区块链之Hyperledger(超级账本)Fabric v1.0 的环境搭建(超详细教程) ii)Hyperledger Fabric 1.4环境搭建 搭建第一个网络 【我的区块链之路】- Hyperledger fabric的简单入门(二)单机演示fabric网络启动全...
  •   最近开始学习区块链了,准备先在虚拟机上搭建环境体验一下挖矿的感觉 一、安装geth客户端   geth是以太坊主要的两个客户端软件之一,另一个是Parity。 依次运行 安装完成后检查是否安装成功:geth version 二...
  • 搭建基于ethereum以太坊环境的私有链安装geth在之前的博客有提到,所以本篇默认已经安装成功geth -h //能成功显示输出帮助,则表示已经成功安装 一、创世块现在通过配置创世块来创建私有链。同一个网络中,创世块...
  • 搭建一个私有区块链环境

    千次阅读 2018-04-21 17:11:57
    打算先搭建一个测试环境开始运行。这里记录整个搭建过程,供后来人参考。 整体上,分为三个步骤,安装相关软件,初始化系统,建立集群,以及最后一步,挖矿。 我们采用的是以太坊,相对其他区块链,这是一个成熟的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,166
精华内容 466
关键字:

区块链环境搭建