美文网首页
以太坊学习之路

以太坊学习之路

作者: 佐筱猪 | 来源:发表于2018-03-04 15:57 被阅读18次

1.安装

1.安装rvm
2.更新ruby

rvm list known 查看列表
rvm install 2.4.1 --disable-binary
rmv use 2.4.1 --default 使用哪个版本

更新时发现brew需要更新,由于网络原因一直无法更新,一直卡到git clone xxxx 这一步
不知道是不是因为网络突然灵光或者是自己乱操作,成功了。自己乱操作如下

进入到/usr/local/HomeBrew目录下
调用 git clone xxxx 后面加上--depth 1。

3.安装geth

brew tap ethereum/ethereum
brew install ethereum

又遇到安装不成功的问题,依然卡到git clone(从源码安装也不好使)

git clone https://github.com/ethereum/go-ethereum
brew install go
cd go-ethereum
make geth

然后更了一宿加一个上午,终于成功了。
4.测试

geth version

输出如下。成功

Geth
Version: 1.8.1-stable
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.10
Operating System: darwin
GOPATH=
GOROOT=/usr/local/opt/go/libexec

2.搭建私有链

1.创建测试文件夹

mkdir test

2.创建创世配置文件genesis.json

{
  "coinbase"   : "0x0000000000000000000000000000000000000001",
  "difficulty" : "0x400",
  "extraData"  : "",
  "gasLimit"   : "4712388",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00",
  "alloc": {},
  "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    }
}

对应含义(不知道什么原因,用这个json ,不会生成account。第一次生成时用的其他json,会自动生成一个account(不知道是不是json,但是着急没有对比)。)

config.chainId // 以太链的ID,用来唯一标记一条以太链
coinbase // 矿工账号,第一个区块挖出后将给这个矿工账号发送奖励
difficulty // 难度值,越大越难
extraData // 附加信息随便填
gasLimit // gas 的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大
nonce // 一个 64 位随机数
mixhash // 与 nonce 配合用于挖矿,由上一个区块的一部分生成的 hash
parentHash // 上一个区块的 hash 值
alloc // 预设账号以及账号的以太币数量,这里不做配置

3.创建数据存放地址并初始化创世块

geth  --datadir "创世块的路径(data0)" init genesis.json
–datadir 代表文件夹地址,
–nodiscover 代表该链条不希望被其他节点发现,
console 2>> geth.log 代表将控制台输出到文件geth.log中去
console 启动命令行模式,可以在Geth中执行命令

初始化成功后,会在数据目录data0中生成geth和keystore两个文件夹,此时目录结构如下:

test
├── data0
│   ├── geth
│   │   └── chaindata
│   │       ├── 000002.ldb
│   │       ├── 000003.log
│   │       ├── CURRENT
│   │       ├── LOCK
│   │       ├── LOG
│   │       └── MANIFEST-000004
│   └── keystore
└── genesis.json

启动命令行

geth --identity "newEth" --rpc --rpccorsdomain "*" --datadir "enode1" --port 30303 --rpcapi "personal,db,net,eth,web3" --networkid 999 --rpcport 8080 console

启动另一个接点

geth --datadir "enode2" init genesis.json
geth --identity "newEth" --rpc --rpccorsdomain "*" --datadir "enode2" --port 30304 --rpcapi "personal,db,net,eth,web3" --networkid 999 --rpcport 8081 console

注意,两个节点不同的地点在datadir,port,rpcport。因为我们是在同一个计算机上运行两个节点,所以datadir,port,rpcport必须不同,如果不是在同一个计算机上则无所谓。

3.命令行语法

这是一个交互式的Javascript执行环境,在这里面可以执行Javascript代码,其中>是命令提示符。在这个环境里也内置了一些用来操作以太坊的Javascript对象,可以直接使用这些对象。这些对象主要包括:

eth:包含一些跟操作区块链相关的方法
net:包含以下查看p2p网络状态的方法
admin:包含一些与管理节点相关的方法
miner:包含启动&停止挖矿的一些方法
personal:主要包含一些管理账户的方法
txpool:包含一些查看交易内存池的方法
web3:包含了以上对象,还包含一些单位换算的方法
admin.peers   查看所有节点,返回一个数组

在1节点 添加二节点
admin.addPeer('')节点的地址 endoe://xxxx@ip:端口
例如

admin.addPeer('enode://6b944fdc0a3460977e67682428b29cec7b28a400a2a5c3ef6b56673eb9f4abc8fe7316018c2073e43569ec63e6542eb7dc8b23cc93f397bc41a1f077b8cec6e4@[::]:30304')

再次查看
admin.peers


两节点已经添加到一个链上了

支持tab快速编辑

参考及后续学习地址
geth语法

从零开始以太坊区块链开发指南一(已学习完,后续待学习。2和3 是智能合约)

命令行语法

相关文章

  • 以太坊学习之路

    1.安装 1.安装rvm2.更新ruby rvm list known 查看列表rvm install 2.4.1...

  • 以太坊(一):以太坊开发四部曲

    一、引子 进阶以太坊,整理以太坊开发学习笔记。 二、选择以太坊客户端 go-ethereum GO:官方推荐的客户...

  • 面向老程序员的Solidity摘要

    开发以太坊DApp,Solidity是必经之路。然而,对于跟我一样的那些有多年开发经验的以太坊新人来讲,Solid...

  • 以太坊的愿景

    今年10月31日,以太坊创始人Vitalik在DevCon4上发表了题为《ETH2.0:以太坊的扩容之路》的演讲。...

  • 区块链重要资料

    比特币 比特币官网比特币Wiki白皮书源代码 以太坊 以太坊爱好者以太坊Blog以太坊论坛以太坊Git白皮书

  • 以太坊1.0和2.0有什么区别?

    虽然以太坊2.0依旧用“以太坊”命名,但以太坊1.0和以太坊2.0其实是完全不同的两种架构。以太坊1.0和2.0的...

  • 区块链2.0之以太坊

    区块链2.0之以太坊 一、什么是以太坊 以太坊的全称是Ethereum,简称ETH或ether。 以太坊被称为区块...

  • 以太坊源码解读(1)以太坊架构与模块结构

    以太坊架构与模块化结构 一:以太坊核心概念 EVM: 以太坊虚拟机,以太坊中智能合约的运行环境 Accounts:...

  • Golang连接以太坊合约

    go-connect-eth-contract golang如何连接以太坊合约。近一段时间在学习以太坊智能合约,在...

  • 第3章 以太坊应用开发基础

    以太坊开发环境搭建 配置以太坊环境** 安装go环境因为以太坊是Go语言进行开发的,所以要在本机上安装以太坊,首先...

网友评论

      本文标题:以太坊学习之路

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