导航:首页 > 以太坊区 > 树莓派以太坊私链搭建

树莓派以太坊私链搭建

发布时间:2024-03-31 05:26:55

① CentOS 6.5上搭建以太坊私有链,编译时报错: make: *** [geth] Error 1,请各位大神指教

build/env.sh go run build/ci.go install ./cmd/geth
make: *** [geth] Error 1
没有这个目录,或者这个目录权限不够

② 现在区块链应用也很多,请问什么样的才算是好的区块链应用呢在哪里可以清楚的了解知道呢

想了解区块链应用,可以多参考很多书籍和观点,有《图说区块链》《区块链:重塑经济与世界》《新经济蓝图与导读》,还有币安社区的文章,包括对币安社区这个平台也详细了解,实力牛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)政务服务

旨在实现基于区块链技术的电子政务数字生态系统,向公民提供政务服务和政府各部门业务的自动化机制,必须将国家政务所有领域结合在一起,形成一个共有的信息空间,包含政府机构、经济数据、金融交易和社会领域。这个生态系统还应包括注册管理部门机构和对应软件,用于构建基于智能合约的政府机构、企业和公共用户的应用程序和平台。

③ 以太坊的 ChainId 与 NetworkId

ChainId 是 EIP-155 引入的一个用来区分不同 EVM 链的一个标识。如下图所示,主要作用就是避免一个交易在签名之后被重复在不同的链上提交。最开始主要是为了防止以太坊交易在以太经典网络上重放或者以太经典交易在以太坊网络上重放。在以太坊网络上是从 2675000 这个区块通过 Spurious Dragon 这个硬分叉升级激活。

引入 ChainId 后,带来了哪些影响呢?

NetworkId 主要用来在网络层标识当前的区块链网络。NetworkId 不一致的两个节点无法建立连接。

NetworkId 无法通过配置文件指定,智能通过参数 --networkid 来指定。所以我们启动自己私链节点上需要记得加上这个参数。如果不加这个参数也不指定网络类型,默认 NetworkId 的值和以太坊主网一致。

不是。
这个根据上面的介绍可以很明显的看出,两者并没有非常高的关联度。
网上几乎所有提到搭建以太坊私链的文章,都要强调 NetworkId 需要和 genesis 文件里 ChainId 的值相同。事实上是没必要的。
就像下面这张图展示的这样,很多已经在主网运行的 EVM 链,它们的 ChainId 和 NetworkId 并不相同。比如以太经典,它的 ChainId 是 61,但 NetworkId 和以太坊主网一样都是 1。

之所以很多文章强调 ChainId 和 NetworkId 要保持一致,可能因为在某一段时间内,一些开发工具比如 MetaMask,会把 NetworkId 当作 ChainId 来用。不过现在 MetaMask 已经支持自定义 ChainId,以太坊也添加了 “eth_chainId” 这个 RPC API,相信两者误用的情况会越来越少。

④ 以太坊是什么丨以太坊开发入门指南

以太坊是什么丨以太坊开发入门指南
很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。
以太坊是什么
以太坊(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来搭建一个测试网络。
注:本文中为了方便大家理解,对一些概念做了类比,有些严格来不是准确,不过我也认为对于初学者,也没有必要把每一个概念掌握的很细致和准确,学习是一个逐步深入的过程,很多时候我们会发现,过一段后,我们会对同一个东西有不一样的理解。

⑤ 1. 树莓派:eth桥接到wlan口,共享上网

背景: 树莓派外接5G无线网卡,推流器连接raspberry 3B lan口,共享上网。

验证: raspberry 3B连接手机的热点,PC通过网线与raspberry的lan口相连,实现上网。

思路:

1. 首先给raspberry的eth设置一个静态ip地址。

2. 修改IP转发规则,允许ip数据的转发。(ip_forward的设置)

3. 路由设置,配置iptables,进行两个网卡的桥接。

4. 开启raspberry的DHCP服务,在eth口上开启。

5. 开启DNS服务。

详细过程:

1. 给树莓派的eth分配静态地址。

暂时分配:

sudo ifconfig eth0 192.168.173.1 255.255.255.0 up

永久分配:

写在配置文件里。

配置文件 /etc/network/interfaces,请注意此处wlan0的地址参数要和etc/udhcpd.conf相关参数相对应。

sudo vi  /etc/network/interfaces

#iface default inet dhcp

增加

auto eth0

iface eth0 inet static

address 192.168.173.1

netmask 255.255.255.0

注意:

2. 启动IP转发

有多种方法,建议使用sysctl的设置方式

方法1:sudo echo 1 > /proc/sys/net/ipv4/ip_forward

方法2:sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

方法3:sudo sysctl -w net.ipv4.ip_forward=1

有的时候需要在/etc/sysctl.conf下添加一行:net.ipv4.ip_forward=1

3. iptables设置

     iptables -t nat -I POSTROUTING -o wlan0 -j MASQUERADE

4. dhcp服务

4.1 安装udhcpd服务

    sudo apt-get update

    sudo apt-get install udhcpd

4.2 配置DHCP服务

    sudo vi /etc/udhcpd.conf

    1. 修改网络接口,设置成对应的网卡号

    2. 设置remaining,去除前面的#符号

    #remaining     yes    改为   remain    yes

    3. 设置树莓派的IP地址

        修改opt router为192.168.173.1,那么配置完成之后这个地址将作为网关,连接到raspberry eth口的设备网关需要设置为此IP.

        此处opt dns被修改为公共的DNS地址 114.114.114.114和 114.114.114.115

4.3 使能DHCP

     配置 /etc/default/udhcpd

    sudo nano  /etc/default/udhcpd

    使用#符号注释DHCPD_ENABLED="no"

    DHCPD_ENABLED="no"    改为     #DHCPD_ENABLED="no"

4.4  启动服务

    1. 启动udhcp的服务:sudo service udhcpd start

    2. 设置开机启动: sudo update-rc.d  udhcpd enable

5. dns服务

在进行调试的时候发现无法查询到raspberry使用的dns地址,按照常规方法查到的dns地址为127.0.1.1。在网上查了一下https://segmentfault.com/q/1010000002443769 感兴趣的可以参考一下这篇文章。

这就导致我在测试的时候遇到一个问题,pc可以通过ip地址访问,但是通过域名无法访问。然后我就在网上查了一些共用的dns服务器,设置后一切正常。关于这些共用的dns信息参考如下:

/********************************************************************************************************************************************************/

A、DNSPod DNS+:DNSPod的 Public DNS+是目前国内第一家支持ECS的公共DNS,是DNSPod推出的公共域名解析服务,可以为全网用户提供域名的公共递归解析服务!

DNS 服务器 IP 地址:

首选:119.29.29.29        备选:182.254.116.116

B、114DNS:国内用户量巨大的DNS,访问速度快,各省都有节点,同时满足电信、联通、移动各运营商用户,可以有效预防劫持。

DNS 服务器 IP 地址:

首选:114.114.114.114        备选:114.114.114.115

C、阿里 AliDNS:阿里公共DNS是阿里巴巴集团推出的DNS递归解析系统,目标是成为国内互联网基础设施的组成部分,面向互联网用户提供“快速”、“稳定”、“智能”的免费DNS递归解析服务。

DNS 服务器 IP 地址:

首选:223.5.5.5        备选:223.6.6.6

/********************************************************************************************************************************************************/

⑥ 以太坊多节点私有链部署

假设两台电脑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

⑦ 「官方」搭建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和以太坊生态有长期的协作 历史 和机会,未来可期。

⑧ 如何开发数字货币

谢邀~

为何要开发数字货币?从中央银行的角度来看有6个好处:

第一、提升经济交易活动的便利性和透明度

第二、降低传统纸币发行、流通的高昂成本

第三、更好地支持经济和社会发展

第四、助力普惠金融的全面实现

第五、 减少洗钱、逃漏税等违法犯罪行为

第六、提升央行对货币供给和货币流通的控制力


数字货币开发步骤:

第一步、

首先我们要从git 上下载某套区块链体系的源码,比如选择比特币的主干代码下载好

相关源码。

同时准备好对应的编译环境(C + +的建议在Linux)和安装好对应开发环境和工具。

第二步、

代码都是需要编译的,因此需要准备编译环境和工具,需要下载环境编译工具、配

好系统环境变量, qt环境等文件,编译命令在Itc源代码里的文件里有详细说明。

不过系统和开发环境的搭建、程序编译等过程都比较繁琐,不建议普通用户自己制作。对于开发人员,第一次可能要预计2-3天的安装配置时间。

第三步、

拿比特币开发来说,他是Q的开发环境,下载好源码并配置好环境后,在QtCreator内打开该比特币核心的源码,配置相关文件和编译器,开始尝试编译比特币核心的客户端。

第四步、

改造成自己的数字货币,打开各个源文件,找到对应的地方调整参数即可,如调整

每个区块出币数,总产量,调整难度等等,然后就到最关键的点,就是改名为自己的币名。

想怎么取名就怎么取名,别忘记在资源文件夹里替换掉相关图标。如果一切顺利,经过重新

编译,你的新币就顺利发明了。

对于这个数字货币的开发,还是属于技术比较专业的,因此最好有-个专业的团队协助。

数字货币开发大致需要学习的框架:

1、搭建以太坊私链测试环境以及公链节点环境配置

2、以太坊中以太币的交易、确认原理

3、以太坊中json rpc接口

4、以太币转账与提现原理

5、服务器对接以太坊公链接口,自有服务器存储业务数据,公链存储交易可匿名数据

6、私钥的安全处理

以下是开发的代码示例:

举例下市场上常用的数字货币钱包有:

APP类:kcash、imtokenweb:myEthereumWalletgoogle 浏览器插件:metaMask

其中最常用的就是imToken

区块链交易技术概念:

让我们来看看区块链交易是如何以比特币为例进行处理的。为了将一定数量的比特币发送到另一个钱包,您需要以下信息:将资金发送到您的钱包的地址,您想要发送的加密货币数量

接收者的钱包的ID。

每笔交易都使用唯一的机密私人密钥进行签名。一旦付款由发件人签署,它就变为公开可用。交易仍需要确认,以便收款人可以得到这笔钱为了确认交易,有必要生成一个新的链条块。

这些块是通过进行复杂的数学计算来找到唯一的密钥而生成的。创建一个新块需要10分钟,找到该密钥的人获得一定数量的硬币作为奖励。一旦创建了链的新块,就不可能将其从数据库中删除或以某种方式更改信息。因此,区块链交易是最终且不可逆的。

数字货币的三大核心优点:

第一点、数字货币是公平的货币

数字货币没有特定的发行机构,不是由某一国家发行的,仅仅是依靠特定算法产生的,这就意味着无法通过操纵发行数量来操纵数字货币,因此数字货币是一种自由的、非国家的货币。

我们可以看到现在有许多国家是直接认可了虚拟货币,那么有需求,就需要交易的平台。

我们现在许多想搭建虚拟货币交易平台的投资者,为什么不能去这些地区搭建交易平台呢?搭建虚拟货币交易平台,这不就是一个很好的商机吗?

第二点、数字货币的安全系数更高

纸币的出现虽然方便了我们日常生活中的交易,但是会有被偷盗以及收到的风险。电子货币虽然可以避免这些风险,但是会出现诸如被盗刷、等新的问题。

数字货币则可以避免以上问题。并且将每一笔交易记录在网络上进行广播,是的所有节点都保存全部货币的流通信息,这样任意一个节点在交易之前就可以轻易地发现货币的流通。

第三点、数字货币的交易可以实现匿名交易

由于没有传统银行开户和身份认证的过程,数字货币是纯匿名的。虽然可以根据本地完整的交易记录查询到每个账号的流水信息。

但却无法知道这个账号的主人是谁,同样也没有任何人有能力操纵他人账号上的数字货币,这样很好的保护了使用人的隐私。


如果您也在持有交易数字货币、外汇黄金原油、合约期货:

⑨ 以太坊如何使用web3.js或者rpc接口获取交易数据交易时间与确认数

如果要查询主网上的交易记录,可以使用etherscan。但是,如果是你自己搭建的私链,应该如何查询交易记录呢?

答案是你需要自己监听链上的日志,存到数据库里,然后在这个数据库中查询。例如:

varaddr=""
varfilter=web3.eth.filter({fromBlock:0,toBlock:'latest',address:addr});
filter.get(function(err,transactions){
transactions.forEach(function(tx){
vartxInfo=web3.eth.getTransaction(tx.transactionHash);
//这时可以将交易信息txInfo存入数据库
});
});

web3.eth.filter()用来监听链上的日志,web3.eth.getTransaction()用来提取指定交易的信息,一旦获得交易信息,就可以存入数据库供查询用了。

推荐一个实战入门,你可以看看:以太坊教程

⑩ 如何搭建自己的区块链

第一部分:从 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、比特币等等。

阅读全文

与树莓派以太坊私链搭建相关的资料

热点内容
BTC3S杠杆的风险 浏览:168
币空间矿池 浏览:332
中国会恢复比特币交易 浏览:692
有私钥如何还原比特币 浏览:709
现在值得入手虚拟货币 浏览:268
2100BTC 浏览:586
以太坊今天实时价位 浏览:809
挖以太坊的风险是什么 浏览:299
奥马电器和数字货币有关系吗 浏览:442
数字货币的商机是真的还是假的 浏览:860
数字货币组合投资 浏览:9
比特币算力与电信网络有关吗 浏览:544
虚拟货币市场哪种比较有潜力 浏览:701
比特币还有什么币减半 浏览:340
达沃斯论坛中国区块链白皮书 浏览:978
ethpoolorg矿池 浏览:578
比特币价格数学模型 浏览:244
区块链技术利润 浏览:885
虚拟货币能赚多少 浏览:262
以太坊开宝箱的游戏 浏览:265