区块链给我们带来的好处:配置区块链网络并利用该技术

  

  如何使用开源工具建立一个私有的以太坊区块链,了解区块链技术可以增加价值的一些市场和行业。

  在第一部分中,我花了很多时间探索加密货币以及使其成为可能的机制:区块链。我详细介绍了一下关于区块链如何工作以及为什么它如此安全和强大。在第二部分中,我将介绍如何使用开源工具设置和配置您自己的私有以太坊区块链。我也看在这个技术可以带来一些价值或帮助重新定义人们的方式在更开放的网络上进行交易。

  建立您自己的私有区块链网络

  在本节中,我将探讨基于以太坊的区块链网络机制 - 具体来说,如何创建一个私有的以太坊区块链,一个托管和共享此区块链的私人网络,一个帐户,然后如何做一些有趣的事情。

  什么是以太坊?以太坊是一个开源和公共区块链具有智能合约(即脚本)功能的平台。它类似于比特币,但不同之处在于它超越了货币交易。

  智能合约是用编程语言编写的,例如Solidity(类似于C和JavaScript),Serpent(类似于Python),LLL(a类似Lisp的语言)和Mutan(Go-based)。编制智能合约进入EVM(见下文)字节码并部署在以太坊区块链中执行。智能合约有助于交换金钱,财产,股票或任何有价值的东西,它在透明和无冲突的情况下这样做避开传统中间人的方式。

  如果你还记得第一部分,任何一个典型的布局区块链是所有节点都连接到每个其他节点的区块链,创建一个网格。在以太坊的世界中,这些节点被引用作为以太坊虚拟机(EVM),每个EVM将托管一份副本整个区块链。每个EVM也将竞争下一个阻止或验证交易。一旦新块被附加到区块链,更新传播到整个网络,这样每个节点都是同步的。

  要成为以太坊网络上的EVM节点,您需要下载并安装适当的软件。要做到这一点,你会使用Geth(Go Ethereum)。 Geth是Go的官方实施以太坊协议。它是三个这样的实现工具之一;另外两个是用C ++和Python编写的。这些开源软件软件包根据GNU宽通用公共许可证(LGPL)获得第三个许可版本.所有人的独立Geth客户端软件包支持的操作系统和体系结构(包括Linux)可在这里使用,软件包的源代码托管在GitHub上。

  Geth是一个用于通信的命令行界面(CLI)工具与以太坊网络。它旨在充当您的计算机和以太坊网络中的所有其他节点。当一块正在由网络上的另一个节点,即Geth安装中挖矿将通知更新,然后将信息传递给更新区块链的本地副本。有了Geth实用程序,你就可以了能够挖掘以太币(类似于比特币,但以太币可以在两个地址之间转移资金,创造智能合约等等。

  下载和安装

  在我的示例中,我正在配置此以太坊区块链最新的LTS版本的Ubuntu。 请注意,工具本身是不限于此分发或发布。

  从项目网站下载和安装二进制文件

  下载最新的稳定版本,将其解压缩并复制到适当的版本

  目录:

  $ wget https://gethstore.blob.core.windows.net/builds/

  ?geth-linux-amd64-1.7.3-4bb3c89d.tar.gz

  $ tar xzf geth-linux-amd64-1.7.3-4bb3c89d.tar.gz

  $ cd geth-linux-amd64-1.7.3-4bb3c89d/

  $ sudo cp geth /usr/bin/

  从源代码构建

  如果要从源代码构建,则需要同时安装

  Go和C编译器:

  $ sudo apt-get install -y build-essential golang

  切换到目录并执行:

  $ make geth

  从公共存储库安装

  如果你在Ubuntu上运行并决定从一个安装包

  公共存储库,运行以下命令:

  $ sudo apt-get install software-properties-common

  $ sudo add-apt-repository -y ppa:ethereum/ethereum

  $ sudo apt-get update

  $ sudo apt-get install ethereum

  入门

  这是事情,你没有任何以太开始。随着那个请注意,我们将此部署限制为“私有”区块链网络这将作为主要的开发或暂存版本运行以太坊网络。从功能的角度来看,这个私有网络将与主要区块链相同,但所有情况除外在这个网络上部署的交易和智能合约将是只能访问此专用网络中连接的节点。 Geth会的帮助这个私人或“testnet”设置。使用该工具,你会能够做任何以太坊平台广告的一切,没有需要真正的以太网。

  请记住,区块链只不过是数字和公共的分类帐按时间顺序保存交易。什么时候新事务被验证并配置成块,块然后附加到链,然后分布在链网络。该网络上的每个节点都将更新其本地副本链到最新的副本。但是你需要从某个方面开始 - a开始或起源。每个区块链都以一个创世块开头,也就是说,一个块“零”或链的第一个块。它将是没有前任的唯一街区。创造你的私人区块链,你需要创建这个创世块。至这样做,你需要创建一个自定义的创世纪文件,然后告诉Geth使用该文件来创建自己的genesis块。

  创建一个目录路径来托管所有与以太坊相关的数据配置并更改到config子目录:

  $ mkdir ~/eth-evm

  $ cd ~/eth-evm

  $ mkdir config data

  $ cd config

  打开首选文本编辑器并将以下内容保存到a在同一目录中名为Genesis.json的文件:

  {

  "config": {

  "chainId": 999,

  "homesteadBlock": 0,

  "eip155Block": 0,

  "eip158Block": 0

  },

  "difficulty": "0x400",

  "gasLimit": "0x8000000",

  "alloc": {}

  }

  这就是你的genesis文件的样子。 这个简单的JSON格式string描述以下内容:

  config - 此块定义自定义链的设置。

  chainId - 这标识你的区块链,因为主要的以太坊网络有自己的,你需要配置自己独特的您私链的价值。

  homesteadBlock - 定义的版本和协议以太坊平台。

  eip155Block / eip158Block - 这些字段增加了对非向后兼容的协议更改为使用的Homestead版本。对于这个例子的目的,你不会利用这些,所以他们被设置为“0”。

  difficulty - 此值控制块的生成时间区块链。值越高,矿工的计算越多执行以发现有效的块。因为这个例子只是部署一个测试网络,让我们保持这个低值以减少等待时间。

  gasLimit- gas是以太坊网络上交易的燃料。如果您不希望在测试中受到限制,请保留高值。

  alloc - 这部分预付账户,但因为你会在本地挖掘你的以太币,你不需要这个选项。

  现在是时候实例化数据目录了。打开终端窗口,并假设您已安装Geth二进制文件,并且它是通过您的工作路径访问,输入以下内容:

  $ geth --datadir /home/petros/eth-evm/data/PrivateBlockchain

  ?init /home/petros/eth-evm/config/Genesis.json

  WARN [02-10|15:11:41] No etherbase set and no accounts found

  ?as default

  INFO [02-10|15:11:41] Allocated cache and file handles

  ?database=/home/petros/eth-evm/data/PrivateBlockchain/

  ?geth/chaindata cache=16 handles=16

  INFO [02-10|15:11:41] Writing custom genesis block

  INFO [02-10|15:11:41] Successfully wrote genesis state

  ?database=chaindata

  hash=d1a12d...4c8725

  INFO [02-10|15:11:41] Allocated cache and file handles

  ?database=/home/petros/eth-evm/data/PrivateBlockchain/

  ?geth/lightchaindata cache=16 handles=16

  INFO [02-10|15:11:41] Writing custom genesis block

  INFO [02-10|15:11:41] Successfully wrote genesis state

  ?database=lightchaindata

  该命令需要引用工作数据目录存储您的私人链数据。 在这里,我已经指定了我家里eth-evm / data / PrivateBlockchain子目录。 您还需要告诉该实用程序使用初始化你的创世纪文件。

  此命令使用树填充数据目录子目录和文件:

  $ ls -R /home/petros/eth-evm/

  .:

  config data

  https://www.qukuaiwang.com.cn/news/config:

  Genesis.json

  https://www.qukuaiwang.com.cn/news/data:

  PrivateBlockchain

  https://www.qukuaiwang.com.cn/news/data/PrivateBlockchain:

  geth keystore

  https://www.qukuaiwang.com.cn/news/data/PrivateBlockchain/geth:

  chaindata lightchaindata LOCK nodekey nodes transactions.rlp

  https://www.qukuaiwang.com.cn/news/data/PrivateBlockchain/geth/chaindata:

  000002.ldb 000003.log CURRENT LOCK LOG MANIFEST-000004

  https://www.qukuaiwang.com.cn/news/data/PrivateBlockchain/geth/lightchaindata:

  000001.log CURRENT LOCK LOG MANIFEST-000000

  https://www.qukuaiwang.com.cn/news/data/PrivateBlockchain/geth/nodes:

  000001.log CURRENT LOCK LOG MANIFEST-000000

  https://www.qukuaiwang.com.cn/news/data/PrivateBlockchain/keystore:

  您的私人区块链现已创建。 下一步涉及开始允许您挖掘新块并拥有它们的专用网络添加到您的区块链。 为此,请输入:

  :~/eth-evm$ geth --datadir

  ?/home/petros/eth-evm/data/PrivateBlockchain --networkid 9999

  WARN [02-10|15:11:59] No etherbase set and no accounts found

  ?as default

  INFO [02-10|15:11:59] Starting peer-to-peer node

  ?instance=Geth/v1.7.3-stable-4bb3c89d/linux-amd64/go1.9.2

  INFO [02-10|15:11:59] Allocated cache and file handles

  ?database=/home/petros/eth-evm/data/PrivateBlockchain/

  ?geth/chaindata cache=128 handles=1024

  WARN [02-10|15:11:59] Upgrading database to use lookup entries

  INFO [02-10|15:11:59] Initialised chain configuration

  ?config="{ChainID: 999 Homestead: 0 DAO: DAOSupport:

  ?false EIP150: EIP155: 0 EIP158: 0 Byzantium:

  ?Engine: unknown}"

  INFO [02-10|15:11:59] Disk storage enabled for ethash caches

  ?dir=/home/petros/eth-evm/data/PrivateBlockchain/

  ?geth/ethash count=3

  INFO [02-10|15:11:59] Disk storage enabled for ethash DAGs

  ?dir=/home/petros/.ethash count=2

  INFO [02-10|15:11:59] Initialising Ethereum protocol

  ?versions="[63 62]" network=9999

  INFO [02-10|15:11:59] Database deduplication successful

  ?deduped=0

  INFO [02-10|15:11:59] Loaded most recent local header

  ?number=0 hash=d1a12d...4c8725 td=1024

  INFO [02-10|15:11:59] Loaded most recent local full block

  ?number=0 hash=d1a12d...4c8725 td=1024

  INFO [02-10|15:11:59] Loaded most recent local fast block

  ?number=0 hash=d1a12d...4c8725 td=1024

  INFO [02-10|15:11:59] Regenerated local transaction journal

  ?transactions=0 accounts=0

  INFO [02-10|15:11:59] Starting P2P networking

  INFO [02-10|15:12:01] UDP listener up

  ?self=enode://f51957cd4441f19d187f9601541d66dcbaf560

  ?770d3da1db4e71ce5ba3ebc66e60ffe73c2ff01ae683be0527b77c0f96

  ?[::]:30303

  INFO [02-10|15:12:01] IPC endpoint opened: /home/petros/eth-evm/

  ?data/PrivateBlockchain/geth.ipc

  INFO [02-10|15:12:01] RLPx listener up

  ?self=enode://f51957cd4441f19d187f9601541d66dcbaf560

  ?770d3da1db4e71ce5ba3ebc66e60ffe73c2ff01ae683be0527b77c0f96

  ?[::]:30303

  注意使用新参数networkid。 这个networkid有帮助确保您的网络隐私。 这里可以使用任何数字。 我已决定使用9999.请注意其他同行加入您的网络将需要使用相同的ID。

  您的私人网络现已上线! 请记住,每次您需要访问你的私人区块链,你需要使用最后两个具有完全相同参数的命令(Geth工具将不记得它适合你):

  $ geth --datadir /home/petros/eth-evm/data/PrivateBlockchain

  ?init /home/petros/eth-evm/config/Genesis.json

  $ geth --datadir /home/petros/eth-evm/data/PrivateBlockchain

  ?--networkid 9999

  配置用户帐户

  那么,既然您的私有区块链网络正在运行,您就可以开始与它互动。 但为了做到这一点你需要附加运行Geth流程。 打开第二个终端窗口。该以下命令将附加到第一个运行的实例终端窗口并带您进入JavaScript控制台:

  $ geth attach /home/petros/eth-evm/data/PrivateBlockchain/geth.ipc

  Welcome to the Geth JavaScript console!

  instance: Geth/v1.7.3-stable-4bb3c89d/linux-amd64/go1.9.2

  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

  >

  是时候创建一个操纵区块链网络的新账户了:

  > personal.newAccount()

  Passphrase:

  Repeat passphrase:

  "0x92619f0bf91c9a786b8e7570cc538995b163652d"

  记住这个字符串。 你很快就会需要它。 如果你忘记了这个十六进制字符串,你可以将它重新打印到控制台输入:

  > eth.coinbase

  "0x92619f0bf91c9a786b8e7570cc538995b163652d"

  输入以下脚本检查以太币余额平衡:

  > eth.getBalance("0x92619f0bf91c9a786b8e7570cc538995b163652d")

  0

  这是另一种检查余额而无需输入的方法整个十六进制字符串:

  > eth.getBalance(eth.coinbase)

  0

  挖矿

  在主要的以太坊区块链中进行真正的采矿需要一些非常好的专用硬件,如专用图形处理单元(GPU),就像在第一部分中提到的高端显卡上找到的那些但是,因为您正在挖掘私有链上的块低难度级别,你可以没有这个要求。 至开始挖掘,在JavaScript控制台上运行以下脚本:

  > miner.start()

  Null

  第一个终端窗口中的更新

  您将在显示的输出日志中观察挖矿活动第一个终端窗口:

  INFO [02-10|15:14:47] Updated mining threads

  ?threads=0

  INFO [02-10|15:14:47] Transaction pool price threshold

  ?updated price=18000000000

  INFO [02-10|15:14:47] Starting mining operation

  INFO [02-10|15:14:47] Commit new mining work

  ?number=1 txs=0 uncles=0 elapsed=186.855us

  INFO [02-10|15:14:57] Generating DAG in progress

  ?epoch=1 percentage=0 elapsed=7.083s

  INFO [02-10|15:14:59] Successfully sealed new block

  ?number=1 hash=c81539...dc9691

  INFO [02-10|15:14:59] mined potential block

  ?number=1 hash=c81539...dc9691

  INFO [02-10|15:14:59] Commit new mining work

  ?number=2 txs=0 uncles=0 elapsed=211.208us

  INFO [02-10|15:15:04] Generating DAG in progress

  ?epoch=1 percentage=1 elapsed=13.690s

  INFO [02-10|15:15:06] Successfully sealed new block

  ?number=2 hash=d26dda...e3b26c

  INFO [02-10|15:15:06] mined potential block

  ?number=2 hash=d26dda...e3b26c

  INFO [02-10|15:15:06] Commit new mining work

  ?number=3 txs=0 uncles=0 elapsed=510.357us

  [ ... ]

  INFO [02-10|15:15:52] Generating DAG in progress

  ?epoch=1 percentage=8 elapsed=1m2.166s

  INFO [02-10|15:15:55] Successfully sealed new block

  ?number=15 hash=d7979f...e89610

  INFO [02-10|15:15:55] block reached canonical chain

  ?number=10 hash=aedd46...913b66

  INFO [02-10|15:15:55] mined potential block

  ?number=15 hash=d7979f...e89610

  INFO [02-10|15:15:55] Commit new mining work

  ?number=16 txs=0 uncles=0 elapsed=105.111us

  INFO [02-10|15:15:57] Successfully sealed new block

  ?number=16 hash=61cf68...b16bf2

  INFO [02-10|15:15:57] block reached canonical chain

  ?number=11 hash=6b89ff...de8f88

  INFO [02-10|15:15:57] mined potential block

  ?number=16 hash=61cf68...b16bf2

  INFO [02-10|15:15:57] Commit new mining work

  ?number=17 txs=0 uncles=0 elapsed=147.31us

  回到第二个终端窗口等待10-20秒,然后在JavaScript控制台上开始检查余额:

  > eth.getBalance(eth.coinbase)

  10000000000000000000

  再等一下,再次列出:

  > eth.getBalance(eth.coinbase)

  75000000000000000000

  记住,这是假的以太币,所以不要太高兴。因为您无法在主要的以太坊网络中使用。

  要停止挖矿,请调用以下脚本:

  > miner.stop()

  True

  嗯,你做到了。 你创建了自己的私有区块链并开采了一些以太币。

  谁将从今天和未来的技术中受益?

  尽管区块链最初是围绕加密货币开发的(更具体地说,比特币),它的用途不止于此。今天,看起来似乎就是这种情况,但还有未开发的行业区块链技术可以重新定义交易方式的市场被处理。以下是一些想到的例子。

  改善智能合约

  以太坊,部署了相同的开源区块链项目,很早就已经在做整个智能合约了,但是这个想法仍然处于起步阶段,随着它的成熟,它将逐步发展消费者需求。这方面有很大的增长空间区。它可能并最终将进入公司治理(如验证数字资产,股权等),交易股票,处理知识产权和管理财产所有权,如土地所有权登记。

  实现市场和共享经济

  想想eBay,但重新聚焦于点对点。这意味着没有更多的交易费用,但它也会强调你的重要性个人声誉,因为没有单一的机构管理交易或交换商品或服务的市场。

  众筹

  跟我之前关于权力下放的言论一样市场,个人或者也有机会公司筹集资金以帮助“启动”他们的举措。想想一个更开放,更全球化的Kickstarter或GoFundMe。

  多媒体共享或托管

  有抱负或成熟音乐家的点对点网络绝对可以在这里走很长的路 - 一个内容将达到的地方它的目标受众直接,并避免支付高额的特许权使用费去工作室,唱片公司和内容发行商。一样

  适用于视频和图像内容。

  文件存储和数据管理

  通过启用全球点对点网络,区块链技术将云计算提升到一个全新的水平。随着技术的继续为了进入现有的云服务市场,它将面临挑战传统供应商,包括亚马逊AWS甚至Dropbox和其他人 - 它将以一小部分价格这样做。例如,冷存储数据产品今天是一个价值数千亿美元的市场。通过在全球和分散的地方分发加密档案网络,需要单一维护本地数据中心设备实体显着减少。

  社交媒体以及您发布的内容的管理方式会发生变化这个模型也是如此。在区块链,Facebook或Twitter或任何人否则不能声称你选择分享的内容。

  利用区块链的另一个好处就是利用密码学保护您的宝贵数据不被黑客入侵或丢失。

  物联网

  什么是物联网(IoT)?这是一个广义的术语描述网络化管理非常具体的电子设备,包括加热和冷却恒温器,灯,车库门等。运用人们可以将软件,传感器和网络设施相结合轻松实现可以自动化和监控家庭的环境和/或商业设备。

  供应链审计

  通过向消费者提供分布式公共分类帐,零售商不能伪造对其产品的索赔。消费者将有能力验证其来源,无论是食物,珠宝或其他任何东西。

  身份管理

  这里没有太多要解释的。威胁是非常真实的。个人信息的盗窃永远不会有停止的一天。今天的用户名/密码系统已经完成了他们的课程,现在是现有认证的时候了框架利用了提供的加密功能区块链。

  概要

  这种革命性的技术使组织能够以这种方式实现十年前不可能的事情。它的潜力是巨大的,似乎任何行业都在处理某种基于交易的行为模型将被技术破坏。这只是时间问题。

  现在,区块链的未来会是什么样子?在这个阶段,很难说。但有一件事是肯定的;像IBM这样的大公司正在对这项技术进行大量投资并建立自己的区块链基础设施,可以出售给并由企业和金融机构使用。这个但是,可能会产生一些问题。随着这些大公司的建立区块链基础设施,他们将申请专利保护他们的技术。并且在他们的信息库库中有这些专利,存在他们可会积极地反对竞争对手企图诋毁他们及其价值。

  更多区块链资讯:http://www.qukuaiwang.com.cn/news

文章内容系本站作者个人观点,不代表本站对其观点赞同或支持,文章的版权归该作者所有。如需转载,请注明文章来源。本文地址:http://www.cis.net.cn/kejikuaixun/43895.html
留言与评论(共有 条评论)
验证码:

最新文章

配置区块链网络并利用该技术

科技快讯
如何使用开源工具建立一个私有的以太坊区块链,了解区块链技术可以增加价值的一些市场和行业。在第一部分中,我花了很多时间探索加密货币以及使其成为可能的机制:区块链。我详细介绍了一下关于区块链如何工作以及为什么它如此安全和强大。在第二部分中,我将介绍如何使用开源工具设置和配置您自己的私有以太坊区块链。我也看在这个

社保压企业通勤累员工 凛冬将至的中小企业如何活下去?

科技快讯
葛黛瓦哀求道:“他们都快活不下去了,您能替他们减轻一点税负吗?”,伯爵气急败坏地说:“放过他们可以,除非你赤身裸体地骑马在城中大街上转一圈,我就宣布减税。”这几个月有两个话题刷屏了朋友圈,一篇是有关税收和社保的,估计很多人都看过《别只顾着“征税”不管企业洪水滔天》、《社保改革:压倒企业的最后一根稻草》;还有一个话题是有关

薛蛮子:全球范围的数字货币泡沫化

科技快讯
薛蛮子2017年圣诞节的问候与提示最近我看到数字货币在全球范围内都伴随着比特币的大幅度升值而活跃起来了。首先,比特币为代表的数字货币做为一个避险工具和对抗恶性通货膨胀(如最近政变的津巴布韦和经济濒临破产的委内瑞拉)得到了越来越多的关注和接受。区块链技术持续发展也取得的一定的进步,现在的一些区块链项目越来越多关注

英国政府试点在区块链上存储数字证据

科技快讯
英国政府已披露计划进行一项试验项目,以便在区块链上存储数字证据。英国司法部女王陛下法院和法庭服务(HMCTS)的数字架构和网络安全负责人BalajiAnbil宣布了该倡议。法院改革在公告中,安比尔透露,HMCTS推动调查分布式账本技术

开发者推出可重用地址提案提升BCH性能

科技快讯
开发工作是BCH发展的重要一环。为了帮助用户更好的了解BCH的开发工作,cash.coin.dance对BCH的开发进行了统计。根据cash.coin.dance网站统计,BCH平台协议开发项目目前有24项已完成,22项正在开发中,13项正在讨论中。在这些众多项目,最近一次更新则是6天前的“BCH可重用支付地址提案”

我的区块链技术学习笔记(八):交易初探!

科技快讯
交易(transaction)是比特币的核心所在,而区块链唯一的目的,也正是为了能够安全可靠地存储交易。在区块链中,交易一旦被创建,就没有任何人能够再去修改或是删除它。今天我们将会开始实现交易。不过,由于交易是很大的话题,我会把它分为两部分来讲:在今天这个部分,我们会实现交易的基本框架。在第二部分,

将区块链整合到您的业务中的五大策略

科技快讯
考虑到所有主要加密货币的增长,以及区块链周围隐藏的令人钦佩的特性,一些公司正在考虑将区块链技术集成到他们的业务中,并且这已经不是什么新闻了。从一开始,区块链技术就被认为只是比特币的公共交易账本。但今天,它令人难以置信的好处已经超越了加密货币的交易。区块链是一个伟大的创新,就像20年前互联网的出现一样。在采用这种技

你想清楚了吗(我已经想清楚了)

科技快讯
这两天圈子里又躁动起来了,爱思发币,洪门发币,作为热点必蹭的某宝,也毫不迟疑的发币了,而且还用起了朋友圈转发送币的病毒营销方式。然鹅,本猫是有朋友圈洁癖的,本来因为微信好友人数满而苦恼,每天在找发各种不喜欢内容的人删除,哪里受得了一群啥事都没想明白的人刷屏,于是,第一时间发布了谁转

Juniper Research:超半数大公司考虑使用区块链技术

科技快讯
暴走时评:英国调查公司JuniperResearch最近发布了一项调查报告,指出超半数大公司都在研究区块链,计划或已经开始部署该技术。现在,许多公司对区块链的理解也比之前更加深刻,这也在一定程度上促进了公司积极接受该