拥有币安智能链很简单,只需要一份教程
2020-12-15hotnews 编辑:瑶佳
2020年已接近尾声,纵观整个行业发展和市场走势,基本可以分为三条主线:
第一,比特币一路上涨并创下历史新高,距离20000美金大关只差一步之遥。一众主流币也均斩获了不俗的成绩。
第二,DeFi成为广受市场关注和资金追逐的火热概念,Compound、Uniswap等明星项目接连发力,此后AC板块的崛起成功接棒。
第三,主网赛道开启竞速模式,除了Filcoin、ETH2.0信标链、波卡等备受关注的明星项目外,一众交易所也纷纷布局自己的公链:币安先一步上线了智能链,火币也于近期上线了生态链Heco。
现有中心化交易所公链的价值解析
中心化交易所上线真正的公链主网,可以算得上是十足真金的利好。因为平台不仅可以丰富自己的业务矩阵,满足更多元化的投资/交易需求,还可以以此为基础,搭建出一个前景无限广阔的生态。但这一切都有一个重要的前提,那就是“真正的公链”。如果只是没有技术突破的假概念,或者徒有虚表的空壳子,那就另当别论了。
当市场情绪回归理性时,我们不妨客观分析一下现有中心化交易所的公链项目的价值。可能在很多非专业人士看来,交易所公链是长期技术积累和海量研发资源共同作用下的重磅产品,代表着行业前沿。然而在技术人员眼中却并非如此。从本质上来说,无论是抢先一步的币安智能链,还是紧随其后的火币生态链,都可以归类为以太坊的分叉链。也就是说:发布一条“币安智能链”,或者“火币生态链”,远远要比想象中简单。就算是没有什么技术基础的人,也可以在教程的帮助下,发布属于自己的智能链和生态链。
教你快速发布自己的智能链和生态链
我们可以在Ubuntu 16.04上实作,并在本机上架设两个以太坊私有链节点:
首先,我们先以 A 节点的角色操作,建立第一个区块链节点。
一. 创建私有链文件夹
A节点的私有链的数据都会储存到该文件夹中。
mkdir private-chain-A
cd private-chain-A
二. 下载Geth
依据操作系统下载geth tools并解压缩至文件夹,链接如下:
https://geth.ethereum.org/downloads/
三. 新建账号
用下列指令新建账号,默认会账号存到~/.ethereum/keystore,--datadir可将账号存在设定的文件夹。
#创建账号
geth account new --datadir ./
#读取账号
geth account list --datadir ./
四. 产生genesis.json
接着启动 puppeth 照着指示一步一步产生 genesis.json
1. Please specify a network name to administer (no spaces, hyphens or capital letters please)
请输入你的网络名称(不可用空白、连接号或大写)
2. What would you like to do?
2 设定新的genesis
3. What would you like to do?
1 新建新的genesis
4. Which consensus engine to use?
2 Clique - proof-of-authority
5. How many seconds should blocks take? (default = 15)
产生一个区块需要几秒,这里我们输入币安智能链的3s出块时间。
6. Which accounts are allowed to seal? (mandatory at least one)
指定那些账号可以授权封装。
7. Which accounts should be pre-funded?
那些账号可以得到Ether?
8. Should the precompile-addresses (0x1 .. 0xff) be pre-funded with 1 wei?
precompile-addresses需要被分配到 1wei吗? (预设yes)
9. Specify your chain/network ID if you want an explicit one (default = random)
输入chain/network ID,预设随机
10. What would you like to do?
2 Manage existing genesis (管理现在的genesis)
2 Export genesis configurations (输出genesis)
11. Which folder to save the genesis specs into? (default = current)
将genesis存到哪个文件夹(预设当下)
puppeth会产生多个 genesis ,可以删除 -harmony.json的genesis
五. 初始化geth
geth init --datadir ./.json
启动前准备
建议先了解 geth 的Command-Line-Options新建pwd.txt解锁你的账户。
echo> pwd.txt
#为账号设定的密码
六. 启动geth
我们会启动web socket,需要rpc的话,自行加入参数,启动前有两个参数要先改。
: 刚刚输入的network id: 新建的账号
nohup geth --networkid--datadir ./ --ws --wsapi eth,personal,web3,miner --wsport 8547 --wsorigins "*" --wsaddr 0.0.0.0 --unlock--password pwd.txt &>output &
随后,我们再来以B节点的角色操作,建立第二个区块链节点。产生B节点的enode,并启动节点B的Geth。启动后,我们要用A节点将B节点加入私有链的网络中。
这样,我们便可以操作私有链节点了,具体步骤如下:
一. 连入A节点
cd ~/private-chain-A
# 方法一
geth attach ./geth.ipc
# 方法二
geth attach ws://127.0.0.1:8547
二. 用A节点将B节点加入私有链
geth attach ./geth.ipc
# 可以看到现在节点是空的
> admin.peers
[]
# 加入节点,请将上面的产生出来的 $enodeUrl贴上去,记得要加双引号。
> admin.addPeer("enode://105a34aa34dfc0eb1a5bb8ac79d647733857796345e6d3045e86f7b6aafb450cff81020c344990bfc8c4ad0052441a45a50ba0c930edb0da528e77330b7ef6ec@127.0.0.1:30304")
true
# 联机成功,现在多了B节点信息
> admin.peers
[{
caps: ["eth/63"],
enode: "enode://105a34aa34dfc0eb1a5bb8ac79d647733857796345e6d3045e86f7b6aafb450cff81020c344990bfc8c4ad0052441a45a50ba0c930edb0da528e77330b7ef6ec@127.0.0.1:30304",
id: "5191c0e1f276805155070835216595c28aa50c1ea2a87d2224ab86e5c0cc73e1",
name: "Geth/v1.8.27-stable-4bcc0a37/linux-amd64/go1.11.9",
network: {
inbound: false,
localAddress: "127.0.0.1:52038",
remoteAddress: "127.0.0.1:30304",
static: true,
trusted: false
},
protocols: {
eth: {
difficulty: 1,
head: "0x863dd154027e417359f6b41ddf7cb073269fb78cf6a9c5b723e01bcc1a89841c",
version: 63
}
}
}]
三. 挖矿
在连入A节点后,可以开启挖矿
miner.start()
miner.stop()
四. 查询账户Ether
web3.fromWei(web3.eth.getBalance(web3.eth.accounts[0]), 'ether').toFixed(2);
五. 配置21个节点轮流出块
现在来配置21个节点轮流出块,这里以三个节点A,B,C为例。启动节点后,首先跟其他节点建立连线:
admin.addPeer(enode://7267113574d0c7f9c2d0859e5f552f172d2add8e4d31c76861494b7815baea170058b01b35c97dcb638dc57f8b0395127e77f25469d75092eb5abcca497cb57c@172.31.33.187:3000)
然后在节点A,节点B上分别对新加入的节点C进行授权:
clique.propose(「0x3f9a3A33884FF903c0924EDD384A2AF1657f926B」,true)
重新启动节点C,并将节点C与节点A、节点B建立连线,然后在节点A,节点B上分别执行:
admin.addPeer(「enode://cd1226502cf4805b2bec5766290717db8ae941b7629aac08668014a32bc1996fd31801fb7f6ce4504593a5a505310379156b47689f33a77df9c5ac426db79e47@127.0.0.1:3004」)
最后在节点C执行miner.start()开始挖矿,此时节点A,B,C交替挖矿。
加入普通节点,先生成一个新账户,再初始化私有链,然后启动该节点,在该节点与其他节点建立连线即可。
以上,就是创建属于你自己的“币安智能链”,或者“火币生态链”的具体教程。感兴趣的朋友可以进行实际操作。
结语:
随着行业的逐渐发展和技术的不断更新,缺乏内涵支撑的单纯的故事变得越来越难以立足,包装出来的概念也变得越来越缺乏市场。只有真正具有革新意义的好项目,才可能在残酷的竞争中脱颖而出,成为大浪淘沙后的幸存者。希望这份教程能够让大家了解到一些公链运行的机制和基本逻辑,能够拥有更好地项目鉴别能力。