以太坊学习之路

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 是智能合约)

命令行语法

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • 本文是对以太坊文档 Ethereum Frontier Guide 和 Ethereum Homestead 的整...
    趁风卷阅读 9,366评论 0 16
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,087评论 18 139
  • 虽然以太坊是一个公有链系统,但是我们可以通过设置一些参数来运行自己的私有链节点,在自己的私有链上进行开发和测试不需...
    duanyu阅读 6,767评论 2 26
  • 小小的绘本故事 大大的人生道理 一。绘本故事(阿米爱妈妈) 陪cindy读(阿米爱妈妈) -如果我用水...
    静静幸福心空间阅读 374评论 0 0
  • 才道时节应酷暑,柳岸绿环阴。竟也杨花落楚津,细数尽啼痕。 心动随香花倦懒,似是近白频。只恐云行渐远君,怎怅若,晚风吟。
    灵鼍偃月阅读 246评论 1 4