二维码

2.15 geth - 数据结构 - 机器学习

1370 人阅读 | 时间:2021年01月15日 01:12
2.15 geth - 数据结构 - 机器学习 #daohang ul li t,.reed .riqi,a.shangg,a.xiatt,a.shangg:hover,a.xiatt:hover,a.shang,a.xiat,a.shang:hover,a.xiat:hover,.reed-pinglun-anniu,span.now-page,#daohangs-around,#caidan-tubiao,#daohangs,#daohangs li,#btnPost{background-color:#D10B04;} .dinglanyou1 h3{border-bottom:3px solid #D10B04;} #dibuer{border-top:2px solid #D10B04;}.cebianlan .rongqi h3{border-bottom:1px solid #D10B04;} #edtSearch{border:1px solid #D10B04;} #daohang .zuo ul li{border-right:1px solid #;} #daohang ul li t a{border-top:1px solid #;border-right:1px solid #D10B04;} #daohang ul li t a:hover{border-right:1px solid #;} #daohang .you ul li a:hover,#daohang .zuo ul li a:hover,.reed-pinglun-anniu:hover{background-color:#;} a:hover,.reed h6 a:hover,#dibuer a:hover,.reed .riqiding,.cebianlan .rongqi li a:hover,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.shu a,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.huifuliuyan a:hover,.reed-biaoti h6 span{color:#D10B04;} .reed .kan a{color:#0A0AF5;}.reed .kan a:hover{color:#D10101;} @media screen and (max-width:1492px){a.shang,a.xiat{background:none;} a.xiat:hover,a.shang:hover{background-color:#f9f9f9;background-image:none;text-decoration:none;}} var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?2d748c9763cfc72fb7d1ccab29f0770d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f6d451f3f1be23f3abf240c64c469c1b"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();

当前位置:首页 » 区块链精品文章 » 正文

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646201", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646162", container: s }); })();

2.15 geth

1249 人参与  2018年09月18日 09:46  分类 : 区块链精品文章  评论

geth(或称为go-ethereum)是以太坊、Whisper和Swarm节点的一个实现。geth可以成为全部实现或者一些选定实现的一部分。合并它们的目的是让它们看起来像单一的DApp,通过一个节点客户端就可以访问三个DApp。

geth是一种CLI应用,它用Go语言编写,在主要的操作系统中都可使用。geth的当前版本还不支持Swarm,但支持Whisper的一些功能。在写本书时,geth的最新版本是1.3.5。

2.15.1 安装geth

geth可用于OS X、Linux和Windows操作系统。它支持两种类型的安装:二进制安装和脚本安装。在写本书时,geth的最新版本是1.4.13。让我们看看如何 使用二进制安装方法在不同操作系统中进行安装。如果用户不得不修改geth源代码并安装,请使用脚本安装方法。我们不想改变源代码,因此将采用二进制安 装。

1.OS X

推荐在OS X中使用brew安装geth。在终端运行下面两个命令安装geth:

2.15 geth - 数据结构 - 机器学习

2.Ubuntu

推荐在Ubuntu中使用apt-get安装geth。在Ubuntu终端中运行如下命令安装geth:

2.15 geth - 数据结构 - 机器学习

3.Windows

对于Windows来说,geth是一个可执行文件。从https://github.com/ethereum/go-ethereum/wiki/Installation-instructions-for-Windows 下载zip文件,并解压缩。压缩包中有geth.exe文件。

想更多地了解在不同操作系统上安装geth的方法,请访问https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum

2.15.2 JSON-RPC和JavaScript操作台

geth为其他应用提供了与其进行通信的JSON-RPC API。geth使用HTTP、WebSocket和其他协议服务于JSON-RPC API。JSONRPC提供的API分成:admin、debug、eth、miner、net、personal、shh、txpool和web3等类 型。访问https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console 可以了解更多信息。

geth还提供了一个交互JavaScript操作台,可以使用JavaScript API进行程序交互。该交互操作台使用JSON-RPC与geth进行通信。在后面的章节中,我们将学习更多关于JSON-RPC和JavaScript API的内容。

2.15.3 子命令和选项

让我们通过例子学习geth命令的一些重要的子命令和选项。用户可以使用help子命令发现所有子命令和选项的列表。我们将在下面学习更多关于geth及其命令的知识。

1.连接至主网网络

以太坊网络中的节点默认用30303端口通信。但是节点还可以收听一些端口。

为了连接到主网网络,只需要运行geth命令即可。如下是一个例子,展示如何明确指定网络ID和指定将存储下载区块链的自定义目录:

2.15 geth - 数据结构 - 机器学习

其中,--datadir选项用于指定在哪里存储区块链。如果没有提供,默认路径是“$HOME/.ethereum”;

--networkid用于指定网络ID。1代表主网网络ID。如果没提供网络ID,默认值是1。2代表测试网络ID。

2.创建私有网络

要创建私有网络,只需给出一个随机网络ID即可。通常创建私有网络的目的是进行开发。geth还提供了多个与日志和调 试相关的标记(flag),这对于开发很有益处。可以简单使用--dev标记运行一个私有网络,该网络允许多个与日志和调试相关的标记,而不用给出一个随 机网络ID并放上多个与日志和调试相关的标记。

2.15.4 创建账户

geth还允许创建账户,即生成密钥和相关地址。为了创建账户,可以使用下面的命令:

2.15 geth - 数据结构 - 机器学习

当运行上述命令时,需要输入密码以加密账户。如果忘记密码,就无法访问账户了。

为了在本地钱包获得所有账户的列表,可以使用下面的命令:

2.15 geth - 数据结构 - 机器学习

执行上述命令将打印账户中所有地址的列表。密钥默认存储在--datadir路径中,但用户可以使用--keystore选项指定一个不同的目录。

1.挖矿

默认geth不启动挖矿。为了指示geth开始挖矿,只需要提供--mine选项。还有一些与挖矿相关的选项:

2.15 geth - 数据结构 - 机器学习

除了--mine选项之外,这里还给出了其他选项。--minerthreads选项用于指定哈希过程中使用的线程总 数,默认使用8个线程。etherbase是挖矿赚取的回报存入的地址。账户默认是加密的。所以要访问账户中的以太币,就需要解锁,即解码账户。解密用于 解码账户相关私钥。为了开始挖矿,不需要解锁它,因为只需要地址就能存入挖矿回报。可以使用-unlock选项解锁一个或者多个账户。使用逗号分隔地址可 以提供多个地址。

--minergpus用于指定挖矿使用的GPU。为了得到GPU列表,可以使用geth gpuinfo命令。每个GPU需要1~2GB的RAM。默认只使用CPU,而不使用GPU。

2.快速同步

在写本书时,区块链大小大约为30GB。如果用户的网速慢,则下载需要花费几个小时甚至几天。以太坊实现了一种快速同步算法,可以更快地下载区块链。

快速同步(fast synchronization)不下载整个区块,而只下载区块头、交易凭证和最新的状态数据库。因此用户不需要下载和重播全部交易。为了检查区块链的真 实性,该算法在每一个已定义的区块序号之后下载一个完整的区块。要更深入地学习快速同步算法,请访问https://github.com/ethereum/go-ethereum/pull/1889

为了在下载区块链过程中使用fast sync,用户需要在运行geth的过程中使用--fast。

出于安全原因,fast sync只在初始同步时运行(即该节点自身的区块链为空时)。在节点成功与网络同步后,fast sync就永远禁用了。作为一项额外的安全功能,如果在枢轴点(pivot point)附近或者之后快速同步失败,就会禁用fast sync,然后节点返回到完整的、以区块处理为基础的同步。


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=590

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdPic":"","bdStyle":"0","bdSize":"16"},"share":{},"image":{"viewList":["qzone","tsina","tqq","renren","weixin"],"viewText":"分享到:","viewSize":"16"},"selectShare":{"bdContainerClass":null,"bdSelectMiniList":["qzone","tsina","tqq","renren","weixin"]}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
区块链是什么  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646186", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646175", container: s }); })();
搜索

网站分类

标签列表

最近发表

    (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https'){ bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else{ bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!

jQuery(document).ready(function($){ /* prepend menu icon */ $('#daohangs-around').prepend('
'); /* toggle nav */ $("#caidan-tubiao").on("click", function(){ $("#daohangs").slideToggle(); $(this).toggleClass("active"); }); });

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
关闭广告
关闭广告
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×