ubuntu以太坊私有链搭建教程
❶ 「官方」搭建Web3:Filecoin与以太坊携手共进
这是Protocol Labs创始人Juan Benet在EthCC 2021上的演讲概要,查看完整内容:
https://www.bilibili.com/video/BV1eb4y1r7E1
Filecoin网络是面向生态的,它与Protocol Labs搭建模块化解决方案的倾向是一致的。因为它本来就是设计给其他人使用,所以Filecoin在Web3领域的其他栈、应用和生态里如鱼得水。自从其在2020年10月的启动开始,Filecoin已经增长到超过8 exbibytes的可用存储空间,有超过400个项目进入了这个生态。以太坊就是一个能持续证明其可协作性和共同利益的生态系统。
Filecoin + 以太坊
>>>>Filecoin和以太坊虚拟机(EVM)
Filecoin生态意识到网络支持智能合约的好处。最初,开发者社区相信架设在以太坊和Filecoin之间的桥服务足够在Filecoin上支持智能合约了。不过,通过桥来使用智能合约是很笨重的方式,相比于直接在以太坊实现智能合约的功能和可组合性更是不足。有一个提议是在Filecoin上加入以太坊虚拟机(EVM),从而在存储层启用对智能合约的支持,以及为这两个生态的结合提供更多机会。
>>>>开发者工具和资源
Fleek:让用户能为去中心化网络架设网站、存储和分发文件及开发dapp。Fleek可以让每一个人(从专业的开发者到日常的互联网用户)更容易以去中心化的方式创建app和存储文件,从而加速去中心化网络的采用率。Fleek可以在Filecoin上进行自动化存档,并通过ENS(以太坊域名服务)这样的应用来利用以太坊的生态系统。
https://fleek.co/
Web3.Storage:是一个让开发者在Filecoin去中心化存储网络上存取数据的简单接口。Web3.Storage为开发者(包括以太坊dapp开发者)提供了搭建应用的简单方式,这些应用可以带有冗余的去中心化的存储以及安全的内容寻址数据。
http://web3.storage/
PowerLoom:以去中心化的方式将链上和链下数据聚合起来以生成带有密码学证明的快照。它旨在通过一个丰富的节点和利益相关者生态系统(他们被激励参与到协议里)来搭建信任,并按需提供洞见。PowerLoom特别适用于以太坊DeFi这样的生态,这类系统是非常复杂的,而且需要基于验证的信任。
https://powerloom.io/
>>>>DeFi应用
SecuredFinance(https://secured-finance.com/)是一个综合平台,整合了基于智能合约的点对点固定利率贷款、抵押品管理服务、货币间交易和其他类型的利率产品。Secured Finance的协议是去中心化的点对点金融协议,提供了由以太坊智能合约赋能的区块链上的中后台银行业务。Secured Finance可以满足Filecoin网络内的需求,它提供的解决方案能够满足Filecoin存储提供者对FIL贷款的强烈需求。
>>>>数据市场
OceanProtocol(https://t.co/misApE3ggc?amp=1)是一个在Filecoin上搭建的数据市场。Ocean的数据token(data tokens)是以太坊ERC-20 token,可以轻易地用于发布和消费数据服务。如果你有1个数据token,你可以访问一个特定的数据服务。Ocean market是一个专门为数据服务的去中心化交易所,它分叉了一个Balancer AMM(自动化做市商)来降低gas成本。在这个市场中,用户可以对数据进行发布、购买、销售、消费和stake操作。
通过Filecoin,用户可以利用Ocean来发起自己的Filecoin数据市场,或创建一个Filecoin dataDAO或指数基金。通过Ocean Protocol的工具和Filecoin的去中心化存储数据库,我们正见证新生的开放数据经济。
>>>>视频应用
LivePeer:是一个去中心化的在线视频流媒体基础设施,由以太坊区块链确保安全性。将Filecoin和IPFS结合提供存储和内容分发功能后,去中心化视频应用就成为可能了。
https://livepeer.org/
Voodfy:正为私有的视频架设服务提供去中心化工具。这是一个多功能的安全流媒体解决方案,让用户能完全控制自己的内容,这包括了访问权的设定以及变现的方式。它利用了Livepeer、Ethereum、Textile Powergate和Filecoin.
https://voodfy.com/
VideoCoin:正搭建一个能可靠地创建、存储和交易基于视频的NFT解决方案,它可以绕过在以太坊上存储实际内容时固有的复杂性和费用。VideoCoin正将其去中心化视频处理网络与Filecoin整合起来,以搭建首个专门为创建和交易视频NFT服务的平台。这个平台是新生的全球数字收藏品市场急需的一部分。
https://videocoin.io/
>>>>NFT
nft.storage(http://nft.storage/)是一个由Protocol Labs实验室和Pinata支持的服务,它专门为存储NFT数据而设计。
nft.storage让开发者通过内容寻址和去中心化存储来保护其NFT资产和相关的元数据,确保所有的NFT遵循最佳实践以实现长期的可访问性。
未来的使用场景
随着Filecoin和Ethereum生态系统的成长和重叠,会出现更多的新生用例和开发者机会。一些可以进行创新的用例包括:
>>>>可组合的DeFIL
将存储和Defi的世界结合可以产生一些机会。人们可以将市场订单(如要价、出价和交易)带到一个去中心化交易所上,以观察市场是如何评判这些订单的价值的。通过这样的能力,生态系统可以开始想象硬件期货(hardware futures)和时空期货(spacetime futures)等的出现。
>>>>数据丰富的NFT
NFT将会越来越复杂,而Web3社区需要 探索 采用数据丰富(data-rich)的NFT的方式。VideoCoin已经将其视频处理引擎与Filecoin连接起来,以结合以太坊对NFT的支持能力及Filecoin的存储能力。像VideoCoin这样的工具可以用来创建一类新型的NFT,如短电影、视频片段和完整长度的专题特写。
>>>>按观看次数支付的媒体
通过在Filecoin上存储的信息,我们可以利用以太坊的token支持能力去创建由token保护的页面和媒体(文章、电影和音乐等)。我们可以复制Web2时代的按观看次数支付模式,而无需复制数据和广告模型。
这只是一个开始!Filecoin和以太坊生态有长期的协作 历史 和机会,未来可期。
❷ 怎么接以太坊公链
建立连接以接儒以太坊公链。
一、1、以太坊客户端下载,注意:需翻墙,下载版本为1.8.23-stable,否则可能出现与以太坊钱包客户端存在不匹配问题。
2、以太坊钱包客户端下载。
3、安装以太坊客户端。
二、私有链创建:创建创世区块。
三、安装并启动以太坊钱包客户端。
❸ 以太坊多节点私有链部署
假设两台电脑A和B
要求:
1、两台电脑要在一个网络中,能ping通
2、两个节点使用相同的创世区块文件
3、禁用ipc;同时使用参数--nodiscover
4、networkid要相同,端口号可以不同
1.4 搭建私有链
1.4.1 创建目录和genesis.json文件
创建私有链根目录./testnet
创建数据存储目录./testnet/data0
创建创世区块配置文件./testnet/genesis.json
1.4.2 初始化操作
cd ./eth_test
geth --datadir data0 init genesis.json
1.4.3 启动私有节点
1.4.4 创建账号
personal.newAccount()
1.4.5 查看账号
eth.accounts
1.4.6 查看账号余额
eth.getBalance(eth.accounts[0])
1.4.7 启动&停止挖矿
启动挖矿:
miner.start(1)
其中 start 的参数表示挖矿使用的线程数。第一次启动挖矿会先生成挖矿所需的 DAG 文件,这个过程有点慢,等进度达到 100% 后,就会开始挖矿,此时屏幕会被挖矿信息刷屏。
停止挖矿,在 console 中输入:
miner.stop()
挖到一个区块会奖励5个以太币,挖矿所得的奖励会进入矿工的账户,这个账户叫做 coinbase,默认情况下 coinbase 是本地账户中的第一个账户,可以通过 miner.setEtherbase() 将其他账户设置成 coinbase。
1.4.8 转账
目前,账户 0 已经挖到了 3 个块的奖励,账户 1 的余额还是0:
我们要从账户 0 向账户 1 转账,所以要先解锁账户 0,才能发起交易:
发送交易,账户 0 -> 账户 1:
需要输入密码 123456
此时如果没有挖矿,用 txpool.status 命令可以看到本地交易池中有一个待确认的交易,可以使用 eth.getBlock("pending", true).transactions 查看当前待确认交易。
使用 miner.start() 命令开始挖矿:
miner.start(1);admin.sleepBlocks(1);miner.stop();
新区块挖出后,挖矿结束,查看账户 1 的余额,已经收到了账户 0 的以太币:
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')
用同样的genesis.json初始化操作
cd ./eth_test
geth --datadir data1 init genesis.json
启动私有节点一,修改 rpcport 和port
可以通过 admin.addPeer() 方法连接到其他节点,两个节点要要指定相同的 chainID。
假设有两个节点:节点一和节点二,chainID 都是 1024,通过下面的步骤就可以从节点二连接到节点一。
首先要知道节点一的 enode 信息,在节点一的 JavaScript console 中执行下面的命令查看 enode 信息:
admin.nodeInfo.enode
" enode://@[::]:30303 "
然后在节点二的 JavaScript console 中执行 admin.addPeer(),就可以连接到节点一:
addPeer() 的参数就是节点一的 enode 信息,注意要把 enode 中的 [::] 替换成节点一的 IP 地址。连接成功后,节点一就会开始同步节点二的区块,同步完成后,任意一个节点开始挖矿,另一个节点会自动同步区块,向任意一个节点发送交易,另一个节点也会收到该笔交易。
通过 admin.peers 可以查看连接到的其他节点信息,通过 net.peerCount 可以查看已连接到的节点数量。
除了上面的方法,也可以在启动节点的时候指定 --bootnodes 选项连接到其他节点。 bootnode 是一个轻量级的引导节点,方便联盟链的搭建 下一节讲 通过 bootnode 自动找到节点
参考: https://cloud.tencent.com/developer/article/1332424
❹ CentOS 6.5上搭建以太坊私有链,编译时报错: make: *** [geth] Error 1,请各位大神指教
build/env.sh go run build/ci.go install ./cmd/geth
make: *** [geth] Error 1
没有这个目录,或者这个目录权限不够
❺ 以太坊是什么丨以太坊开发入门指南
以太坊是什么丨以太坊开发入门指南
很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。
以太坊是什么
以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。
对这句话不理解的同学,姑且可以理解为以太坊是区块链里的Android,它是一个开发平台,让我们就可以像基于Android Framework一样基于区块链技术写应用。
在没有以太坊之前,写区块链应用是这样的:拷贝一份比特币代码,然后去改底层代码如加密算法,共识机制,网络协议等等(很多山寨币就是这样,改改就出来一个新币)。
以太坊平台对底层区块链技术进行了封装,让区块链应用开发者可以直接基于以太坊平台进行开发,开发者只要专注于应用本身的开发,从而大大降低了难度。
目前围绕以太坊已经形成了一个较为完善的开发生态圈:有社区的支持,有很多开发框架、工具可以选择。
智能合约
什么是智能合约
以太坊上的程序称之为智能合约, 它是代码和数据(状态)的集合。
智能合约可以理解为在区块链上可以自动执行的(由事件驱动的)、以代码形式编写的合同(特殊的交易)。
在比特币脚本中,我们讲到过比特币的交易是可以编程的,但是比特币脚本有很多的限制,能够编写的程序也有限,而以太坊则更加完备(在计算机科学术语中,称它为是“图灵完备的”),让我们就像使用任何高级语言一样来编写几乎可以做任何事情的程序(智能合约)。
智能合约非常适合对信任、安全和持久性要求较高的应用场景,比如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权所有权管理、物联网、点对点交易等等。
目前除数字货币之外,真正落地的应用还不多(就像移动平台刚开始出来一样),相信1到3年内,各种杀手级会慢慢出现。
编程语言:Solidity
智能合约的默认的编程语言是Solidity,文件扩展名以.sol结尾。
Solidity是和JavaScript相似的语言,用它来开发合约并编译成以太坊虚拟机字节代码。
还有长像Python的智能合约开发语言:Serpent,不过建议大家还是使用Solidity。
Browser-Solidity是一个浏览器的Solidity IDE, 大家可以点进去看看,以后我们更多文章介绍Solidity这个语言。
运行环境:EVM
EVM(Ethereum Virtual Machine)以太坊虚拟机是以太坊中智能合约的运行环境。
Solidity之于EVM,就像之于跟JVM的关系一样,这样大家就容易理解了。
以太坊虚拟机是一个隔离的环境,在EVM内部运行的代码不能跟外部有联系。
而EVM运行在以太坊节点上,当我们把合约部署到以太坊网络上之后,合约就可以在以太坊网络中运行了。
合约的编译
以太坊虚拟机上运行的是合约的字节码形式,需要我们在部署之前先对合约进行编译,可以选择Browser-Solidity Web IDE或solc编译器。
合约的部署
在以太坊上开发应用时,常常要使用到以太坊客户端(钱包)。平时我们在开发中,一般不接触到客户端或钱包的概念,它是什么呢?
以太坊客户端(钱包)
以太坊客户端,其实我们可以把它理解为一个开发者工具,它提供账户管理、挖矿、转账、智能合约的部署和执行等等功能。
EVM是由以太坊客户端提供的。
Geth是典型的开发以太坊时使用的客户端,基于Go语言开发。 Geth提供了一个交互式命令控制台,通过命令控制台中包含了以太坊的各种功能(API)。Geth的使用我们之后会有文章介绍,这里大家先有个概念。
Geth控制台和Chrome浏览器开发者工具里的面的控制台是类似,不过是跑在终端里。
相对于Geth,Mist则是图形化操作界面的以太坊客户端。
如何部署
智能合约的部署是指把合约字节码发布到区块链上,并使用一个特定的地址来标示这个合约,这个地址称为合约账户。
以太坊中有两类账户:
· 外部账户
该类账户被私钥控制(由人控制),没有关联任何代码。
· 合约账户
该类账户被它们的合约代码控制且有代码与之关联。
和比特币使用UTXO的设计不一样,以太坊使用更为简单的账户概念。
两类账户对于EVM来说是一样的。
外部账户与合约账户的区别和关系是这样的:一个外部账户可以通过创建和用自己的私钥来对交易进行签名,来发送消息给另一个外部账户或合约账户。
在两个外部账户之间传送消息是价值转移的过程。但从外部账户到合约账户的消息会激活合约账户的代码,允许它执行各种动作(比如转移代币,写入内部存储,挖出一个新代币,执行一些运算,创建一个新的合约等等)。
只有当外部账户发出指令时,合同账户才会执行相应的操作。
合约部署就是将编译好的合约字节码通过外部账号发送交易的形式部署到以太坊区块链上(由实际矿工出块之后,才真正部署成功)。
运行
合约部署之后,当需要调用这个智能合约的方法时只需要向这个合约账户发送消息(交易)即可,通过消息触发后智能合约的代码就会在EVM中执行了。
Gas
和云计算相似,占用区块链的资源(不管是简单的转账交易,还是合约的部署和执行)同样需要付出相应的费用(天下没有免费的午餐对不对!)。
以太坊上用Gas机制来计费,Gas也可以认为是一个工作量单位,智能合约越复杂(计算步骤的数量和类型,占用的内存等),用来完成运行就需要越多Gas。
任何特定的合约所需的运行合约的Gas数量是固定的,由合约的复杂度决定。
而Gas价格由运行合约的人在提交运行合约请求的时候规定,以确定他愿意为这次交易愿意付出的费用:Gas价格(用以太币计价) * Gas数量。
Gas的目的是限制执行交易所需的工作量,同时为执行支付费用。当EVM执行交易时,Gas将按照特定规则被逐渐消耗,无论执行到什么位置,一旦Gas被耗尽,将会触发异常。当前调用帧所做的所有状态修改都将被回滚, 如果执行结束还有Gas剩余,这些Gas将被返还给发送账户。
如果没有这个限制,就会有人写出无法停止(如:死循环)的合约来阻塞网络。
因此实际上(把前面的内容串起来),我们需要一个有以太币余额的外部账户,来发起一个交易(普通交易或部署、运行一个合约),运行时,矿工收取相应的工作量费用。
以太坊网络
有些着急的同学要问了,没有以太币,要怎么进行智能合约的开发?可以选择以下方式:
选择以太坊官网测试网络Testnet
测试网络中,我们可以很容易获得免费的以太币,缺点是需要发很长时间初始化节点。
使用私有链
创建自己的以太币私有测试网络,通常也称为私有链,我们可以用它来作为一个测试环境来开发、调试和测试智能合约。
通过上面提到的Geth很容易就可以创建一个属于自己的测试网络,以太币想挖多少挖多少,也免去了同步正式网络的整个区块链数据。
使用开发者网络(模式)
相比私有链,开发者网络(模式)下,会自动分配一个有大量余额的开发者账户给我们使用。
使用模拟环境
另一个创建测试网络的方法是使用testrpc,testrpc是在本地使用内存模拟的一个以太坊环境,对于开发调试来说,更方便快捷。而且testrpc可以在启动时帮我们创建10个存有资金的测试账户。
进行合约开发时,可以在testrpc中测试通过后,再部署到Geth节点中去。
更新:testrpc 现在已经并入到Truffle 开发框架中,现在名字是Ganache CLI。
Dapp:去中心化的应用程序
以太坊社区把基于智能合约的应用称为去中心化的应用程序(DecentralizedApp)。如果我们把区块链理解为一个不可篡改的数据库,智能合约理解为和数据库打交道的程序,那就很容易理解Dapp了,一个Dapp不单单有智能合约,比如还需要有一个友好的用户界面和其他的东西。
Truffle
Truffle是Dapp开发框架,他可以帮我们处理掉大量无关紧要的小事情,让我们可以迅速开始写代码-编译-部署-测试-打包DApp这个流程。
总结
我们现在来总结一下,以太坊是平台,它让我们方便的使用区块链技术开发去中心化的应用,在这个应用中,使用Solidity来编写和区块链交互的智能合约,合约编写好后之后,我们需要用以太坊客户端用一个有余额的账户去部署及运行合约(使用Truffle框架可以更好的帮助我们做这些事情了)。为了开发方便,我们可以用Geth或testrpc来搭建一个测试网络。
注:本文中为了方便大家理解,对一些概念做了类比,有些严格来不是准确,不过我也认为对于初学者,也没有必要把每一个概念掌握的很细致和准确,学习是一个逐步深入的过程,很多时候我们会发现,过一段后,我们会对同一个东西有不一样的理解。
❻ 现在区块链应用也很多,请问什么样的才算是好的区块链应用呢在哪里可以清楚的了解知道呢
想了解区块链应用,可以多参考很多书籍和观点,有《图说区块链》《区块链:重塑经济与世界》《新经济蓝图与导读》,还有币安社区的文章,包括对币安社区这个平台也详细了解,实力牛X。
一、区块链是什么
区块链(Blockchain),顾名思义,是由区块(Block)和链(chain)组成,它是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造、安全可信的分布式账本。
2008年,中本聪发表的论文《比特币:一种点对点的电子现金系统》中第一次提出区块链和加密数字货币的构想。从比特币开始,区块链成为各种各样数字货币的底层技术。
二、区块链的工作原理:
1、基本概念包括:
(1)交易(Transaction):操作一次,会使账本状态改变一次,如添加一条记录;
(2)区块(Block):记录规定时间内发生的交易和状态数据,是对当前账本状态的一次共识和保存;
(3)链(Chain):由一个个区块按照时间顺序串联而成,是整个状态变化的日志记录。
理解了区块链的工作概念也就不难理解其工作原理,假设存在一个分布式的数据记录本,这个记录本只允许添加、不允许删除和更改,其结构是由一个个“区块”串联而成的线性的链(这也是“区块链”名字的来源),新的数据要加入,必须放到一个新的区块中,维护节点可以提议一个新的区块,但是必须经过一定的共识机制来对最终选择的区块达成一致。
2、以比特币为例来看区块链的工作原理。
比特币的区块分为区块头和区块体两部分。
三.区块链的核心优势和特点
1、去中心化
区块链数据的验证、记账、存储、维护和传输等过程均是基于分布式系统结构,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。
2、开放透明
系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
3、安全性
区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。
4、信息不可篡改
一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%(几乎不可能)的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。
5、匿名性
由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方自己产生信任,对信用的累积非常有帮助。
四、区块链的分类
目前来说,区块链最主流的分类是根据参与者的不同,把区块链分为公有链(Public Blockchain)、私有链(Private Blockchain)和联盟链(Consortium Blockchain)。
1、公有链:任何人都可以参与使用和维护,并且能够获得该区块链的有效确认,公有链是最早的区块链,也是目前应用最广泛的区块链,典型的如比特币区块链,信息是完全公开的。
如果引入许可机制,包括私有链和联盟链两种。
2、私有链:一个公司或者个人,仅使用区块链的技术,独享该区块链的写入权限,信息不公开。目前保守的巨头(传统金融)都是想实验尝试私有区块链,私链的应用产品还在摸索当中。
3、联盟链:是介于公有链和似有链之间,由多个组织共同控制的区块链,该链的使用是有权限的管理,可以受制于管理者,也根据管理者的意愿开放给他人。
除此之外,根据区块链使用场景和目的的不同,分为以数字货币为目的的货币链,以记录产权为目的的产权链,以众筹为目的的众筹链等。
五、区块链的具体应用场景分析
1、信息防伪
5月28日,腾讯CEO马化腾在贵阳数博会上就茅台酒打假问题提出了:基于云端的综合区块链技术的防伪方法,其效率将远高于传统防伪方式。未来的防伪验证场景可能只需用户使用手机进行简单的扫描,就可以得到大量的基于不同的维度的完整信息。
以茅台酒为例:
酒厂地址,制作车间,操作员工,检验员,出厂时间,运输车辆信息及驾驶人员信息,
酒的年份原料来源,原料提供商,保存仓库编号,原料运输车辆及驾驶人员信息,
所有的信息都能够精准溯源,被永久记录且不可篡改。
综合以上信息即可轻易验证真伪。
2、食品安全问题
早在去年11月份沃尔玛就已经和IBM进行合作,通过使用区块链技术来追踪食品来源,以此来确保食品的安全性及增加食品的而流通性以降低成本,对于沃尔玛等大型超市来说,以往出现食品安全问题需要几天时间进行问题食品的来源调查,使用了此项技术之后,只需要产品的一项信息就能够做到精准溯源,食品产地、检验者、供应商、物流运输等重要信息,几分钟之内就能快速发现问题。目前来说使用区块链追踪的产品有包括美国的包装产品和中国的猪肉。
3、信息安全
区块链技术正在推动一场信息安全技术变革。中间人攻击、数据篡改、DDoS三大安全威胁
(1)身份保护
PKI是电子邮件、消息应用、网站等各种通讯应用中常见的公钥加密技术。但是由于大多数PKI的实现以来集中式的可信第三方认证机构(CA)来发放、激活和存储用户证书,黑客可攻击PKI假冒用户身份或破解加密信息。
CertCoin是首个区块链PKI实现,来自MIT,去除了中心化的认证中心,以区块链作为于域名和公钥的分布式账本。
Pomcor公司:区块链PKI实现路径:保留认证中心,用区块链存储已经发放和激活的证书的hash值。用户通过去中心化和透明的来源鉴别证书的真实性,同时还能通过本地基于区块链拷贝进行秘钥和签名的认证来提高网络访问性能。
(2)数据完整性保护
GuardTime开发了基于区块链技术的无秘钥签名架构(KSI),取代基于秘钥的数据认证技术。KSI在区块链上存储原始数据和文件的哈希表,运行哈希算法来验证其他拷贝,将结果与区块链存储的数据对比。任何数据的篡改都会被迅速发现,因为原始哈希表存储在数以百万计的节点。
(3)关键基础设施保护
互联网的“阿喀琉斯之踵”,DDoS进入TB时代,DDoS仍然是黑客低成本搞垮大目标的最简单的武器,DNS服务是黑客进行大规模破坏的首要目标,但区块链技术有望从根本上解决。
区块链的分布式存储,使黑客攻击失去焦点,Nebulis正在开发一种分布式DNS系统,使用以太坊区块链和星际互联文件系统(IPFS,HTTP的分布式替代品)来注册和解析域名。DNS最大弱点是缓存,缓存使DDoS攻击成为可能,也是集权政府审查社交网络,操纵DNS注册的祸根。一个高度透明的、分布式的DNS系统能够有效杜绝任何实体,包括政府恣意操纵记录。
四、金融行业
(1)数字货币:提高货币发行及使用的便利性
如国外的比特币、以太币,我国目前有果仁宝等等。
从使用实物交易,到物理货币和信用货币,再到比特币网络的崛起,让更多的人意识到其背后的分布式账本区块链技术,逐步在数字货币外的许多场景进行应用。
(2)跨境支付与结算:实现点到点交易,减少中间费用
转账与支付。目前,区块链技术最成熟的应用便是支付与转账,区块链技术能够避免繁杂的系统,省却银行间对账和审查的流程,加速结算速度;用虚拟货币无需清算所的介入,减少交易费用。各国家的清算程序不同,单笔汇款需2、3天才到帐,效率低,在途资金占比极大。不再通过第三方,通过区块链技术形成点对点的支付。省去第三方机构的环节,即可全天支付、实时到账、提现快捷及降低隐形成本,有助于规避资金风险。具有及时性便利性。
(3)票据与供应链金融业务:减少人为介入,降低成本及操作风险
点对点之间的价值传递,实物票据或中心系统进行控制验证;中介将被消除,减少人为介入。效率的提升,融资渠道更畅通,风险更低,多方受益。
(4)证券发行与交易:实现准实时资产转移,加速交易清算速度
区块链技术的应用可使证券交易的流程更简洁、透明、快速,减少重复功能的IT系统,提高市场运转的效率。对于股票,区块链可以消除纸笔或电子表格记录,减少交易的人为差错,提高交易平台的透明度和可追踪性。花旗与纳斯达克合作推进区块链应用。
(5)客户征信与反欺诈:降低法律合规成本,防止金融犯罪
记载于区块链中的客户信息与交易纪录有助于银行识别异常交易并有效防止欺诈。区块链的技术特性可以改变现有的征信体系,在银行进行“认识你的客户”(KYC)时,将不良纪录客户的数据储存在区块链中。
股权众筹:建立在区块链技术上的股权众筹可以实现去中心化信任,投资者的回报也得到保证。
5、供应链管理
分布式分类帐系统,参与者全程跟踪资产的所有权,可应用于国家和工厂之间移动时跟踪汽车零件。
丰田为其核心零部件供应链运营,研发区块链技术解决方案的前提。通过大量的数据帮助丰田更高效地确保记录数据准确性,也能帮助管理供应链。同时,区块链供应链能够通过智能合同来控制保修,维修货物相关成本和规格,整个产品生命周期内的交易不可撤销。
航运业的第一个公共解决方案解决方案由海运国际(MTI)部署,使用区块链供应链技术共享运输集装箱的验证总量(VGM)信息。有关集装箱VGM的信息对于确保船舶正确存放,防止在海上和港口事故发生是非常重要的。VGM数据存储在区块链供应链上,为港口官员,运输公司,托运人和货主提供永久记录。这取代了麻烦的日志,电子表格,数据中介和私人数据库。
物流诚信体系 货车帮货车帮推出基于区块链的物流企业金融解决方案,旨在为企业提供可靠的金融服务。不仅能帮助司机解决贷款难的问题,亦能改变行业诚信缺失的现状,助力打造物流诚信体系。帮助构建物流企业身份链,打造物流企业可信数据生态。以透明、可监督、可追溯的算法模型,筛选需要资金支持且可靠的企业,为其提供金融服务。另一方面,在技术层面将各执法部门链接起来,对失信企业进行联合处罚。
6、政务管理
(1)选举
基于区块链技术特征,联想到现在选举技术的弊端,我们将搭建一个开源的、针对选举、投票和彩票的区块链应用,我们称之为选举链(ElectionChain)。我们希望优化选举和投票技术,使得投票更加公开透明,减少人为操控,让选民可验证自己的选举结果。
包括身份认证、多链体系、闪投协议、共识算法EDPOS、隐私保护、选票机制设计、去中心化ELC租借市场、存贮方案、智能合约等。
(2)政务服务
旨在实现基于区块链技术的电子政务数字生态系统,向公民提供政务服务和政府各部门业务的自动化机制,必须将国家政务所有领域结合在一起,形成一个共有的信息空间,包含政府机构、经济数据、金融交易和社会领域。这个生态系统还应包括注册管理部门机构和对应软件,用于构建基于智能合约的政府机构、企业和公共用户的应用程序和平台。
❼ 搭建geth私有链和联盟链网络
操作系统:linux或Mac OS
安装geth执行以下命令:
linux:sudo apt-get install ethereum
Mac OS:brew install ethereum
直接创建两个geth的工作目录,用于之后的组建联盟链的使用:
mkdir eth-private1
mkdir eth-private2
首先 cd eth-private1 进入节点1的工作目录该目录下执行下面命令
geth --datadir data --nodiscover console (data是之后geth节点的数据目录,可自行修改)
使用geth自带的工具 puppeth 用于生成创世区块,过程如下:
puppeth
+-----------------------------------------------------------+
| Welcome to puppeth, your Ethereum private network manager |
| |
| This tool lets you create a new Ethereum network down to |
| the genesis block, bootnodes, miners and ethstats servers |
| without the hassle that it would normally entail. |
| |
| Puppeth uses SSH to dial in to remote servers, and builds |
| its network components out of Docker containers using the |
| docker-compose toolset. |
+-----------------------------------------------------------+
Please specify a network name to administer (no spaces, please)
输入私链名称后,会出现二级菜单,现在2:配置一个新的创世快
What would you like to do? (default = stats)
再次出现二级菜单,让你选择共识机制(这里采用poa共识)
Which consensus engine to use? (default = clique)
Ethash - proof-of-work(PoW) :工作量证明,通过算力达成共识 (以太坊就是使用这种方式)
Clique - proof-of-authority(PoA): 权威证明、通过预先设定的权威节点来负责达成共识 (不消耗算力,一般用于私有链测试开发)
如果选择Pow的共识方法,直接输入1,回车即可。
如果选择PoA的共识方法,输入2后会提示让你选择处快的间隔时间,一般测试开发使用可以设置相对的将处快时间设置较少5秒即可,然后会让你选择哪个账户来作为权威生成区块(至少有一个,输入刚才创建的账户,若只是单节点就输入那个节点目录生成的地址,若想组建联盟链就填写生成的两个地址)
How many seconds should blocks take? (default = 15)
选择好共识机制后会让你指定给那些账号初始化ether(至少有一个),输入我们刚才创建的账户地址回车即可。
Which accounts should be pre-funded? (advisable at least one)
选择输入私有链的网络ID,任意数字即可(不能为1,1是公链),也可以不输入会给定一个随机数作为私有链的网络ID
Specify your chain/network ID if you want an explicit one (default = random)
选择导出创世区块配置文件
选择导出创世区块配置文件的保存路径,可以保存到当前目录,直接按回车即可
Which file to save the genesis into? (default = my-private-chain.json)
INFO [02-09|14:56:33] Exported existing genesis block
这样就完成了创世区块文件的配置了,直接退出puppeth即可。
输入命令 geth --datadir data init private.json 其中data自己制定,private.json就是刚才生成的创世区块
若出现如图错误:
输入命令:
geth --datadir data --syncmode full --port 2001 --networkid 1234 --rpc --rpcport "8545" --rpccorsdomain "*" --rpcaddr "0.0.0.0" --rpcapi "db,eth,net,web3,personal,admin,clique" --nodiscover console 进入控制台
--datadir data:节点的数据目录
--syncmode full:块同步的方式(若只是单节点可不填)
--port 2001: 网卡监听端口
--networkid 1234:网络标识符
--rpc:开启rpc服务
--rpcport "8545":rpc服务的端口
--rpccorsdomain "*":允许跨域请求的域名列表(逗号分隔)(浏览器强制)
--rpcaddr "0.0.0.0" :HTTP-RPC服务器接口地址(默认值:“localhost”)
--rpcapi "db,eth,net,web3,personal,admin,clique":基于HTTP-RPC接口提供的API(私有链可以任意开发,公有链需要谨慎)
--nodiscover:不允许节点自动加入
若想搭建联盟链,必须保证创世区块一致,进入到刚才创建的eth-private2的目录
将之前生成的创世区块拷贝过来,初始化创世区块,然后使用启动命令启动分别启动两个节点,进入控制台,使用 admin.nodeInfo 命令获取节点的信息
总结:
两个服务器部署两个节点是可以联通的,但是只能使用两个节点对应的地址进行挖矿,所以只能是两个节点对应两个地址进行挖矿,使用poa共识,当一个节点挂掉,挖矿停止,因为poa共识挖矿必须超过50%的节点进行钱增,现在只是两个节点,挂掉一个节点挖矿就会停止等待另一个节点的确认,停掉的节点可以通过正常运作的节点信息重新连接到网络中。
问题:
同步块有可能报错情况:
1:Synchronisation failed "retrieved hash chain is invalid" 解决目前找到的方法是removedb 数据目录 ,重新init创世区块
2:内存溢出初步确认为开启rpc服务造成的,有可能服务器恶意被黑,暴力破解密码,占有内存,解决,将服务器的ip设置一条防火墙
若存在问题可给本人留言或访问本人的github: https://github.com/qi-shuo/geth-document 记录了一些本人搭建使用的命令
❽ 求助:两台电脑之间搭建私有链,相互之间连不上
硬件方案一:通过一台交换机来实现两台电脑建立局域网
按照两台电脑放置的距离分别做两条标准网线,现在一般都用568B的线序做网线,一条线的两头都用568B的标准做,这样的线是一头接电脑,一头接交机。这样两台电脑通过网线与交换机联接以后,就做好了组成局域网的硬件连接工作。
这里注意一下:电脑端到交换机网线的长度最好不要超过80米,超过这个长度信号会有衰减,有时可能联网不成功。
硬件方案二:
通过一条网线交查互连法(就是网卡连网卡)。
就是两台电脑不用交换机或HUB,一条线两头直接接电脑,这种线的用处就是方便两台在一起的电脑双机互连,这种线一头要用568A标准做,一头用586B标准做。(交换机和路由器的级连也需要用到此种接法的交叉线)
这种方法适用于两台相邻电脑,交查互连的网线不要太长(这个没有什么标准,但根据我的实践经验,超过5米就很难连接成功。)
这种网线交查互连法最经济。
两种做线的线序:
568A标准:白绿,绿,白橙,蓝,白蓝,橙,白棕,棕
568B标准:白橙,橙,白绿,蓝,白蓝,绿,白棕,棕
不管通过哪个硬件方案,两台电脑连接后,下面要对电脑进行设置,实现两台电脑组成局域网。(对电脑的软件设置完全适用于上面两个方案)
网卡IP地址的设置:
要组成局域网,那么局域网内电脑的IP地址要在同一网段,我们这里要把两台电脑的IP地址分别设置成为:192.168.1.2 和192.168.1.3(以windows XP为例)
电脑端本地网络的设置:
以XP为例:
开始-〉控制面板-〉网络连接-〉在“本地连接”上点右键,选择“属性”,找到“Internet协议(tcp/ip)”并点“属性”
最后一定要点“确定”完成设置并退出,一台电脑只需要把IP地址:192.168.1.2改为192.168.1.3 ,其它设置相同
以上全部设置好后,要通过一个ping程序命令来验证一下两台电脑是否已经相连相通。
快捷键:win + R ,调出运行窗口,输入以下命令:ping 192.168.1.3 -t 并回车或点“确定”
注意:以上ping程序命令操作是在电脑IP地址为192.168.1.2上来操作的,如果在电脑192.168.1.3上,那么ping命令应该把192.168.1.3改为192.168.1.2。(如果搞错,自己ping自己的电脑那么永远是通的,就返映不出目标电脑的连接情况了)
两台电脑的网络防火墙要关闭,网络防火墙会拦截ping命令发出的数据
至此两台电脑组成局域网成功。在同一局域网的电脑可以实现诸多功能,如共享文件夹、共享打印机、局域网游戏对战等等。
❾ 如何搭建自己的区块链
第一部分:从 0 到 1 建立自己的区块链 目录:
1.1 从模仿开始,初识区块链
1.2 区块链的基础:共识机制剖析
1.3 共识机制的设计原理和设计方法
1.4 如何快速克隆一条区块链
1.5 如何把比特币变成自己的私链–分叉比特币
1.6 如何把以太坊变成自己的私链–分叉以太坊
1.7 如何把 Ripple 变成自己的私链–分叉 ripple
1.8 如何把 stellar 变成自己的私链–分叉 stellar 1.9 如何搭建一个矿池,并挖出自己的创始区块
1.10 如何开发自己的区块链钱包(Windows 和 MAC) 1.11 如何开发自己的区块链钱包(Android 和 IOS) 1.12 如何开发一个类似于 blockchain.info 的在线钱包 1.13 如何增加自己的区块链网络的安全性和鲁棒性 1.14 如何利用 coind 来处理充值提现业务
1.15 如何利用资金池搭建一个混币服务
1.16 如何设计一种新的挖矿算法
一般情况下都是这个流程,但一般人也是非常难以完成的。区块链成熟的项目有以太坊、DECENT、比特币等等。