主页 > hotnews > > 正文

拥有币安智能链很简单,只需要一份教程

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交替挖矿。

  加入普通节点,先生成一个新账户,再初始化私有链,然后启动该节点,在该节点与其他节点建立连线即可。

  

 

  以上,就是创建属于你自己的“币安智能链”,或者“火币生态链”的具体教程。感兴趣的朋友可以进行实际操作。

  结语:

  随着行业的逐渐发展和技术的不断更新,缺乏内涵支撑的单纯的故事变得越来越难以立足,包装出来的概念也变得越来越缺乏市场。只有真正具有革新意义的好项目,才可能在残酷的竞争中脱颖而出,成为大浪淘沙后的幸存者。希望这份教程能够让大家了解到一些公链运行的机制和基本逻辑,能够拥有更好地项目鉴别能力。

大家都爱看
司南导航公路边坡监测方案实现灾害风险司南导航公路边坡监测方案实现灾害风险 华为云空间:为云冈壁画修复专家守护千华为云空间:为云冈壁画修复专家守护千
查看更多热点新闻