导航:首页 > 以太坊区 > 以太坊挖矿源码成

以太坊挖矿源码成

发布时间:2024-07-25 21:56:10

A. 以太币挖矿,用什么来挖

以太币挖矿教程

1、在硬盘上新建文件夹,比C:Eth。之后所有挖矿软件就存放在这里。

2、下载以下软件

1)Geth——选择Geth-Win下载然后解压

2)Ethminer——下载解压到同一个文件夹,重命名为“miner”

3)Ethereum Wallet(以太坊钱包)——下载Win以太坊钱包,解压之后重命名“wallet”

安装好所有软件

3、打开命令提示符(同时点击Win和R键或者点击开始菜单然后输入cmd)。命令提示符是命令行解析器,让你在操作系统中执行命令输入的软件。

之后你就拥有以太坊钱包了。但是没有余额,所以接下来你需要建立ethminer。暂时可以最小化钱包了。

挖矿

B. 浠ュお鍧婃寲鐭块渶瑕佸摢浜涚‖浠惰惧

浠ュお鍧婃寲鐭块渶瑕佺殑涓昏佺‖浠惰惧囧寘鎷楂樻ц兘鍥惧舰澶勭悊鍣锛圙PU锛夈佷笓鐢ㄦ寲鐭胯姱鐗囷紙ASIC锛夋垨涓澶澶勭悊鍣锛圕PU锛夛紝浠ュ強绋冲畾鐨勭綉缁滆繛鎺ュ拰瓒冲熺殑鐢靛姏渚涘簲銆

楂樻ц兘鍥惧舰澶勭悊鍣锛圙PU锛夛細鍦ㄤ互澶鍧婃寲鐭跨殑鍒濇湡锛岃稿氱熆宸ヤ娇鐢–PU杩涜屾寲鐭匡紝浣嗛殢鐫闅惧害鐨勫炲姞锛孋PU鐨勭畻鍔涘凡缁忔棤娉曟弧瓒抽渶姹傘傚洜姝わ紝楂樻ц兘鐨凣PU鎴愪负浜嗕富娴侀夋嫨銆侴PU鎿呴暱澶勭悊澶ч噺骞惰岃$畻浠诲姟锛岃繖瀵逛簬鎵ц屾寲鐭跨畻娉曢潪甯告湁鍒┿備緥濡傦紝NVIDIA鍜孉MD绛夊叕鍙哥敓浜х殑鏄惧崱鍦ㄤ互澶鍧婃寲鐭夸腑寰楀埌浜嗗箍娉涘簲鐢ㄣ

涓撶敤鎸栫熆鑺鐗囷紙ASIC锛夛細闅忕潃鍔犲瘑璐у竵鎸栫熆鐨勪笉鏂鍙戝睍锛屽嚭鐜颁簡涓撻棬鐢ㄤ簬鎸栫熆鐨勯泦鎴愮數璺鑺鐗囷紝鍗矨SIC銆備笌GPU鐩告瘮锛孉SIC鍦ㄧ畻鍔涘拰鑳芥晥姣旀柟闈㈡湁鐫鏄捐憲浼樺娍銆傜劧鑰岋紝鍦ㄤ互澶鍧婄綉缁滀腑锛孉SIC鐨勪娇鐢ㄦ浘涓搴﹀彈鍒伴檺鍒讹紝鍥犱负浠ュお鍧婄殑鍒涘嬩汉甯屾湜淇濇寔鎸栫熆鐨勫幓涓蹇冨寲銆備絾闅忕潃鏃堕棿鐨勬帹绉伙紝涓浜涢拡瀵逛互澶鍧婄殑ASIC鐭挎満涔熼愭笎鍑虹幇锛屽侭itmain鐢熶骇鐨凙ntminer E3绛夈

涓澶澶勭悊鍣锛圕PU锛夛細铏界劧CPU鍦ㄧ畻鍔涗笂鏃犳硶涓嶨PU鍜孉SIC鐩告瘮锛屼絾鍦ㄦ煇浜涙儏鍐典笅锛屽畠浠嶇劧鏄涓绉嶅彲琛岀殑鎸栫熆閫夋嫨銆備緥濡傦紝瀵逛簬涓浜涙嫢鏈夊ぇ閲忛棽缃瓹PU璧勬簮鐨勭敤鎴锋潵璇达紝浣跨敤CPU杩涜屾寲鐭垮彲浠ュ厖鍒嗗埄鐢ㄨ繖浜涜祫婧愩傛ゅ栵紝涓浜涙柊鍨婥PU鍦ㄨ兘鏁堟瘮鏂归潰涔熸湁鎵鎻愬崌锛屼娇寰椾娇鐢–PU鎸栫熆鍙樺緱鏇村姞缁忔祹楂樻晥銆

闄や簡浠ヤ笂纭浠惰惧囧栵紝绋冲畾鐨勭綉缁滆繛鎺ュ拰瓒冲熺殑鐢靛姏渚涘簲涔熸槸浠ュお鍧婃寲鐭挎墍蹇呴渶鐨勩傜綉缁滆繛鎺ョ殑绋冲畾鎬х洿鎺ュ奖鍝嶅埌鐭挎満涓庝互澶鍧婄綉缁滅殑鍚屾ラ熷害浠ュ強鎻愪氦宸ヤ綔閲忕殑鏁堢巼锛涜岃冻澶熺殑鐢靛姏渚涘簲鍒欐槸纭淇濈熆鏈鸿兘澶熸寔缁绋冲畾杩愯岀殑鍩虹銆傚洜姝わ紝鍦ㄩ夋嫨鎸栫熆纭浠惰惧囨椂锛岃繖浜涘洜绱犱篃闇瑕佺患鍚堣冭檻銆

C. 浠ュお鍧婃庝箞鎸栫熆锛

涓庢墍鏈夊尯鍧楅摼鎶鏈涓鏍凤紝浠ュお鍧婁娇鐢ㄥ熀浜庢縺鍔辩殑瀹夊叏妯″瀷銆備换浣曞0绉版槸缃戠粶涓鐨勭熆宸ョ殑鑺傜偣閮藉彲浠ュ皾璇曞垱寤哄苟楠岃瘉鍖哄潡銆備笘鐣屽悇鍦扮殑璁稿氱熆宸ュ悓鏃跺垱寤哄拰楠岃瘉鍖哄潡銆備互涓嬫槸鍏充簬浠ュお鍧婃寲鐭跨殑璇︾粏璇存槑銆
涓銆佷互澶鍧婇噰鐭跨殑鍩烘湰鍘熷垯
1. 涓庢墍鏈夊尯鍧楅摼鎶鏈涓鏍凤紝浠ュお鍧婁娇鐢ㄥ熀浜庢縺鍔辩殑瀹夊叏妯″瀷銆備换浣曞0绉版槸缃戠粶涓鐨勭熆宸ョ殑鑺傜偣閮藉彲浠ュ皾璇曞垱寤哄苟楠岃瘉鍖哄潡銆備笘鐣屽悇鍦扮殑璁稿氱熆宸ュ悓鏃跺垱寤哄拰楠岃瘉鍖哄潡銆傛瘡涓鐭垮伐閫氳繃鍚戝尯鍧楅摼鍙戦佸潡鏉ユ彁渚涙暟瀛︽満鍒剁殑鈥滆瘉鎹鈥濄傛ゆ祴璇曠被浼间簬淇濊瘉锛氬傛灉姝ゆ祴璇曞瓨鍦锛屽垯姝ゅ潡蹇呴』鏈夋晥銆
浜屻佷互澶鍧婂拰姣旂壒甯佺殑鍖哄埆
1. 鐩稿悓鐐癸細姣旂壒甯佸拰浠ュお鍧婇兘鏄鎴愬姛鐨勫尯鍧楅摼鎶鏈搴旂敤銆備汉浠閫氳繃姣旂壒甯佽よ瘑鍖哄潡閾炬妧鏈銆傞氳繃浠ュお鍧婏紝浜轰滑鎰忚瘑鍒板尯鍧楅摼鍙浠ユ槸鐙绔嬬殑銆傛墍鏈夎繖浜涢兘鍩轰簬鍖哄潡閾撅紝鍏朵腑浜ゆ槗鏄鍏寮璁板綍鐨勶紝璐у竵鍜岃祫浜т氦鏄撴洿鏂逛究鍜岃╂ワ紝骞朵笖娑堥櫎浜嗙箒鐞愮殑涓闂翠汉銆
2. 宸寮傦細姣旂壒甯佹槸涓绉嶅垎鏁g殑鐐瑰圭偣鏁板瓧鏀浠樼郴缁燂紝绫讳技浜庡叏鐞冩竻绠楅摱琛屻傝屼笖杩欏堕摱琛屼笉鏄涓涓闆嗕腑寮忕粍缁囩殑鎴愬憳锛屽畠娌℃湁CEO锛屽畠娌℃湁绠$悊鍛橈紝鍙鏈変唬鐮佺殑鍩烘湰鍘熷垯鍜屽叡璇嗐備粠鍚岃岃浆绉讳环鍊硷紝娌℃湁鍏朵粬绗涓夋柟鎴栦俊鎵樻満鏋勩傛瘮鐗瑰竵鎬婚噺涓2100W銆傚逛簬姣忕敓鎴21W鐨勫潡鍋氳侊紝鍧楃敓鎴愮殑姣旂壒甯佹暟閲忓噺灏戜竴鍗婏紝姣10鍒嗛挓鐢熸垚涓涓鍧椼備竴鑸鑰岃█锛屽畠鏄涓绉嶉氳揣绱х缉鐨勭數瀛愯揣甯併
涓夈佹櫤鑳藉悎绾﹀拰鍗忚
1. 鏅鸿兘鍚堢害棣栧厛鏄鍚堝悓锛屽畠浠ヤ唬鐮佺殑褰㈠紡瑙勫畾浜ゆ槗鎵ц岀殑鍙屾柟锛屽苟瑙勫畾浜嗘墽琛屽悎鍚岀殑鏌愪簺婵娲绘潯浠躲備竴鏃﹁繖浜涙潯浠惰婵娲伙紝鍟嗗畾鐨勪氦鏄撳氨浼氳嚜鍔ㄦ墽琛岋紝閫氬父鏄涓浜涗氦鏄撱傝繖浜涗氦鏄撳皢鐢辩熆宸ユ寲鎺樺嚭鏉ワ紝骞舵渶缁堝悎骞跺埌鍏鍏遍摼涓锛岃繖鏄涓嶅彲鍚﹁ょ殑锛屼笉鍙閫嗚浆銆
2. 浠ュお鍧婁腑鐨勬櫤鑳藉悎绾﹀熀鏈涓婃槸浜掕仈缃戜笂鐨勫紑婧愩備换浣曠敤鎴烽兘鍙浠ョ湅鍒扮浉鍏虫帴鍙g殑瀹氫箟鍜屾縺娲绘椂闂淬傚傛灉娌℃湁缁熶竴鐨勬爣鍑嗭紝璁稿氭櫤鑳藉悎绾﹀皢浣挎瘡涓浜洪兘闅句互鐞嗚В锛岃繖浠芥櫤鑳藉悎绾︾┒绔熷仛浜嗕粈涔堬紵姝ゆ椂锛孍RC20鍗忚宸插惎鍔ㄣ
3. 寮鍙戜汉鍛樺彲浠ラ氳繃鏌ョ湅鍏朵粬鏅鸿兘鍚堢害鐒跺悗璋冪敤鑷宸辩殑鍚堝悓杞绘澗浜嗚В鐩稿叧鐣岄潰鐨勮掕壊銆傛爣鍑嗗寲鏄闈炲父鏈夌泭鐨勶紝杩欐剰鍛崇潃杩欎簺璧勪骇鍙浠ュ湪涓嶅悓鐨勫钩鍙板拰椤圭洰涓浣跨敤锛屽惁鍒欏畠浠鍙鑳藉湪鐗瑰畾鎯呭喌涓嬩娇鐢ㄣ
鍥涖佷负浠涔堜互澶鍧婂彲浠ョ敤鏉ュ彂閫佺‖甯
鍥犱负鏅鸿兘鍚堝悓鐨勫瓨鍦ㄧ殑锛屽悎鍚屽彲浠ヨ鐢ㄦ潵瀹夋帓璐у竵闆嗚祫鏈鍚庡瓨鍏ュ笎鎴风殑鐢ㄦ埛锛屽苟涓斿洜涓0x7D0浣跨敤鐩稿悓鐨勬爣鍑咵RC20濡傜洿鎺ヤ氦鎹0x7D0鍜孎AD鏀鎸佷互澶鍧婄敓鎬佺郴缁熻繖灏嗘洿瀹规槗銆
浜斻佷互澶鍧婁氦鏄撻檺鍒
1. 瀵逛簬姣忕瑪浜ゆ槗锛屼氦鏄撶殑鍙戣捣浜哄繀椤昏惧畾浜ゆ槗鐨凣as闄愪环鍜孏as浠锋牸銆備笉鍚岀殑鎿嶄綔灏嗕骇鐢熶笉鍚岀殑Gas锛孏as鎴愭湰褰撶熆宸ュ畬鎴愬悗锛岀熆宸ュ皢鍋滄㈣繍琛屽苟涓旂敤杩囩殑Gas灏嗚濂栧姳缁欑熆宸ャ
2. 濡傛灉鏌愪簺姘斾綋浠嶇劧瀛樺湪锛屽傛灉鐢ㄦ埛澹版槑闄愬埗鍊煎お纾ㄧ墿浣庢垨鑰呬腑闂寸殑甯愬彿Eth涓嶈冻浠ユ敮浠楪as娑堣楋紝瀹冨皢杩斿洖鍒颁氦鏄撶殑鍙戣捣浜烘垨鏅鸿兘鍚堢害鐨勫垱寤鸿咃紝鐢变簬Gas涓嶈冻锛屽崗璁灏嗚鍙栨秷锛岀敤浜庤$畻鐨凣as灏嗕笉浼氶鍥炶处鎴枫
鍏銆佺綉缁滆$畻鑳藉姏
缃戠粶璁$畻鑳藉姏涓轰互澶鍧婂叏缃戠粶涓鎵鏈夊綋鍓嶆寲鐭挎満鍣ㄧ殑鎬昏$畻鑳藉姏锛屽綋鍓嶆寲鐭块泦缇ゆ槸鏍规嵁璇ュ艰$畻鐨勫綋鍓嶅潡鐨勯毦搴︺
涓冦佷互澶鍧婃彁鍙栭毦搴
鍧楃殑闅惧害鐢ㄤ簬鎻愰珮鍧楅獙璇佸尯鐨勪竴鑷存с侴enesis鍧楃殑闅惧害鏄131,072锛屽苟涓旀湁涓涓鐗规畩鐨勫叕寮忕敤浜庤$畻涔嬪悗姣忎釜鍧楃殑闅惧害銆傚傛灉妫鏌ュ潡姣斿墠涓涓鍧楁洿蹇锛屽垯浠ュお鍧婂崗璁灏嗗炲姞鍧楃殑闅惧害銆傞氳繃璋冩暣鍧楃殑闅惧害锛屾偍鍙浠ヨ皟鏁撮獙璇佸尯鍧楁墍闇鐨勬椂闂达紝鍗崇獊鍙戦熷害銆傛鏌ユ椂闂寸殑鑷鎴戣皟鏁翠互缁х画浠ユ亽瀹氶熺巼鐢熸垚鏂板揩銆
鍏銆佸崟寮犲崱鐨勮$畻鑳藉姏涓庢寲鐭挎敹鍏ヤ箣闂寸殑鍏崇郴
鍗曞紶鍗$殑璁$畻鑳藉姏瓒婂ぇ锛屽彲浠ヨ繘琛岀殑妫鏌ヨ秺澶氾紝鑾峰緱鍏寮忕粨鏋滅殑姒傜巼瓒婂ぇ锛屾儏鍐佃秺澶э紝濡傛灉浣跨敤鐭挎満缁勶紝鎵鎻愪緵鐨勮偂浠芥暟閲忚秺澶э紝鎸栫熆涓氱殑鏀跺叆灏辫秺澶с

D. 以太坊是如何挖矿的

以太坊的代币是通过采矿过程中产生的,每块采矿率为 5 个以太币。以太坊的采矿过程几乎与比特币相同,对于每一笔交易,矿工都可以使用计算机通过散列函数运行该块的唯一标题元数据,反复,快速地猜出答案,直到其中一人获胜。

许多新用户认为,采矿的唯一目的是以不需要中央发行人的方式生成醚(参见我们的指南“ 什么是以太? ”)。这是真的。以太坊的代币是通过采矿过程中产生的,每块采矿率为 5 个以太币。但是,采矿还有至少同样重要的作用。通常,银行负责保持交易的准确记录。他们确保资金不是凭空创造的,用户不会多次欺骗和花钱。不过,区块链引入了一种全新的记录保存方式,整个网络而不是中介,验证交易并将其添加到公共分类账。

Ethereum Mining

尽管“无信任”或“信任最小化”货币体系是目标,但仍有人需要确保财务记录的安全,确保没有人作弊。采矿是使分散记录成为可能的创新之一。矿工们在防止欺诈行为(特别是醚的双重支出)方面达成了关于交易历史的共识 – 这是一个有趣的问题,在分散化的货币未在工作区块链之前解决。虽然以太坊正在研究其他方法来就交易的有效性达成共识,但采矿目前将平台保持在一起。

挖矿如何工作
今天,以太坊的采矿过程几乎与比特币相同。对于每一笔交易,矿工都可以使用计算机反复,快速地猜出答案,直到其中一人获胜。更具体地说,矿工将通过散列函数(它将返回一个固定长度,乱序的数字和字母串,它看起来是随机的)运行该块的唯一标题元数据(包括时间戳和软件版本),只改变’nonce 值’ ,这会影响结果散列值。

如果矿工发现与当前目标相匹配的散列,矿工将被授予乙醚并在整个网络上广播该块,以便每个节点验证并添加到他们自己的分类账副本中。如果矿工 B 找到散列,矿工 A 将停止对当前块的工作,并为下一个块重复该过程。矿工很难在这场比赛中作弊。没有办法伪造这项工作,并拿出正确的谜题答案。这就是为什么解谜方法被称为“工作证明”。

另一方面,其他人几乎没有时间验证散列值是否正确,这正是每个节点所做的。大约每 12-15 秒,一名矿工发现一块石块。如果矿工开始比这更快或更慢地解决谜题,算法会自动重新调整问题的难度,以便矿工回弹到大约 12 秒钟的解决时间。

矿工们随机赚取这些乙醚,他们的盈利能力取决于运气和他们投入的计算能力。以太坊使用的具体工作量验证算法被称为’ethash’,旨在需要更多的内存,使得使用昂贵的 ASIC 难以开采 – 特殊的采矿芯片,现在是唯一可以盈利的比特币开采方式。

从某种意义上讲,ethash 可能已经成功实现了这一目的,因为专用 ASIC 不可用于以太坊(至少目前还没有)。此外,由于以太坊旨在从工作证明挖掘转变为“股权证明”(我们将在下面讨论),购买 ASIC 可能不是一个明智的选择,因为它可能无法长久证明有用。

转移到股权证明
不过,以太坊可能永远不需要矿工。开发人员计划放弃工作证明,即网络当前使用的算法来确定哪些交易是有效的,并保护其免受篡改,以支持股权证明,网络由代币所有者担保。如果并且当该算法推出时,股权证明可以成为实现分布式共识的一种手段,而该共识使用更少的资源。

E. 浠ュお鍧婃寲鐭跨殑绠楁硶鏄浠涔


浠ュお鍧婃寲鐭跨殑绠楁硶鏄浠涔堬紵
浠ュお鍧婃寲鐭跨殑绠楁硶鏄浠涔堬紵
浠ュお鍧婃槸涓绉嶅尯鍧楅摼鎶鏈锛屽彲鐢ㄤ簬鍒涘缓鍒嗗竷寮忓簲鐢ㄧ▼搴忥紙DApps锛夈傛寲鎺樹互澶鍧婄殑杩囩▼娑夊強閫氳繃璁$畻瑙e喅鏁板﹂棶棰樻潵娣诲姞鏂板潡锛岃繖琚璁や负鏄鈥滃伐浣滆瘉鏄庘濈畻娉曪紝浠ヤ繚鎸佸尯鍧楅摼鐨勫畨鍏ㄦу拰瀹屾暣鎬с傝繖涓绠楁硶鍚嶄负鈥淓thash鈥濓紝骞跺湪2015骞村彂甯冧簡浠ュお鍧婄殑绗涓鐗堛
Ethash绠楁硶鏄涓绉嶆暎鍒楀嚱鏁扮畻娉曪紝瀹冨熀浜庡搱甯岀巼锛圚ashrate锛夊拰绠楃姸鎬佹牴锛圫tateRoot锛変骇鐢熸棤瑙勫緥涓斿浐瀹氶毦搴︾殑闂棰樸傝繖涓绠楁硶鐨勭嫭鐗逛箣澶勫湪浜庡畠闇瑕佸ぇ閲忕殑鍐呭瓨锛屼笉鍒╀簬ASIC锛堜笓鐢ㄩ泦鎴愮數璺锛夌殑瀹炵幇鎸栨帢锛岄槻姝涓浜轰互鍙婂皯鏁扮熆宸ヨ幏寰楁洿楂樼殑绔炰簤鍔涳紝浠庤屽炲姞浜嗗幓涓蹇冨寲鐨勭綉缁滃畨鍏ㄦс
鎸栨帢浠ュお鍧婇渶瑕佺殑纭浠朵篃鏈変竴浜涚壒娈婅佹眰銆傞櫎浜咷PU锛堝浘褰㈠勭悊鍣锛夎兘澶熸樉鐫鎻愰珮鎬ц兘澶栵紝鍐呭瓨閲忎篃闇瑕佽冻澶熷ぇ浠ュ圭撼寮閲囪繃绋嬩腑浣跨敤鐨勬暟鎹鍧椼傛ゅ栵紝浠ュお鍧婅繕瑕佹眰浣跨敤楂橀熶簰鑱旂綉杩炴帴銆
鍦ㄦ寲鎺樹互澶鍧婃椂锛岀熆宸ュ繀椤绘壘鍒颁竴涓鈥渘once鈥濓紙涓涓鐢ㄤ簬璁$畻鏁e垪鍑芥暟鐨勪换鎰忔暟瀛楋級锛屼娇寰楀潡澶寸殑鍝堝笇鍊兼弧瓒崇綉缁滅殑闅惧害瑕佹眰銆傝繖绉嶉毦搴︽槸鍔ㄦ佺殑锛屽彇鍐充簬鐭垮伐鐨勬讳綋绠楀姏鍜岀綉缁滀笂鐨勮妭鐐规暟閲忋傚洜姝わ紝鎸栨帢浠ュお鍧婇渶瑕佸ぇ閲忕殑璁$畻鑳藉姏鍜岀數鍔涳紝浠ュ強蹇閫熺殑浜掕仈缃戣繛鎺ワ紝浠ヤ究涓庣綉缁滆繘琛屽悓姝ャ
鎬荤粨涓涓嬶紝浠ュお鍧婄殑鎸栫熆绠楁硶Ethash鏄涓绉嶆暎鍒楀嚱鏁扮畻娉曪紝闇瑕佸ぇ閲忕殑鍐呭瓨鏉ラ槻姝ASIC鎸栨帢锛屼粠鑰屽炲姞浜嗗幓涓蹇冨寲鐨勭綉缁滃畨鍏ㄦс傛寲鎺樹互澶鍧婇渶瑕佸ぇ閲忕殑璁$畻鑳藉姏銆佸唴瀛樺拰缃戠粶杩炴帴銆

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

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

G. 浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄浠涔


浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄浠涔堬紵
浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄浠涔堬紵
浠ュお鍧婃槸涓绉嶅熀浜庡尯鍧楅摼鎶鏈鐨勫姞瀵嗚揣甯侊紝鏃ㄥ湪涓哄幓涓蹇冨寲搴旂敤鎻愪緵骞冲彴銆備笌姣旂壒甯佷竴鏍凤紝浠ュお鍧婄殑浜ゆ槗闇瑕侀氳繃鎸栫熆鎵嶈兘寰楀埌楠岃瘉鍜岀‘璁ゃ傞偅涔堜互澶鍧婄殑鎸栫熆鏂瑰紡鏄浠涔堝憿锛
浠ュお鍧婄殑鎸栫熆鏂瑰紡涓庢瘮鐗瑰竵鏈夊緢澶氱浉浼间箣澶勶紝閮芥槸閫氳繃瑙e喅鏁板﹂棶棰樻潵鑾峰緱姣旂壒甯佹垨浠ュお甯併傝繖浜涢棶棰橀渶瑕佺殑璁$畻璧勬簮闈炲父楂橈紝鍥犳ら渶瑕佸ぇ閲忕殑鐢靛姏鍜岃$畻鑳藉姏銆
浠ュお鍧婇噰鐢ㄧ殑鏄宸ヤ綔閲忚瘉鏄庯紙ProofofWork锛夌殑绠楁硶锛屽嵆ETHash銆備笌姣旂壒甯佹寲鐭跨殑SHA-256绠楁硶涓嶅悓锛孍THash绠楁硶鏄鍩轰簬DAG鍥惧舰鐨勮$畻銆侱AG鍥炬槸涓绉嶆湁鍚戞棤鐜鍥撅紝鐢变互澶鍧婂垵濮嬪潡鐢熸垚锛屾瘡涓鏂扮殑鍖哄潡閮藉熀浜庡墠涓涓鍖哄潡鐨凞AG杩涜岃$畻銆傚洜姝わ紝绠鍗曞湴璇达紝浠ュお鍧婃寲鐭块渶瑕佽В鍐矰AG鍥惧舰鐨勮$畻闂棰樸
鍏蜂綋鏉ヨ达紝浠ュお鍧婄殑鎸栫熆杩囩▼鏄杩欐牱鐨勶細
1.鎸栫熆鑺傜偣鍦ㄧ綉缁滀笂鑾峰緱鏂扮殑浜ゆ槗淇℃伅銆
2.鎸栫熆鑺傜偣灏嗚繖浜涗氦鏄撲俊鎭鎵撳寘鎴愪竴涓鍖哄潡銆
3.鎸栫熆鑺傜偣浠庝互澶鍧婄綉缁滆幏鍙栧埌鍓嶄竴鍖哄潡鐨凞AG鍥俱
4.鎸栫熆鑺傜偣浣跨敤DAG鍥句笂鐨勮妭鐐硅繘琛岃$畻锛屼互鐢熸垚鏂扮殑鍖哄潡銆
5.鎸栫熆鑺傜偣閫氳繃缃戠粶灏嗘柊鐨勫尯鍧楀彂閫佸埌鍏朵粬鑺傜偣杩涜岀‘璁ゃ
6.鍏朵粬鑺傜偣涔熼渶瑕佽В鍐矰AG鍥惧舰鐨勮$畻闂棰橈紝浠ョ‘璁よ繖涓鏂扮殑鍖哄潡鏄鍚﹀悎娉曘
7.濡傛灉鍏朵粬鑺傜偣楠岃瘉閫氳繃锛屽垯杩欎釜鏂扮殑鍖哄潡灏变細琚娣诲姞鍒颁互澶鍧婄殑鍖哄潡閾句笂銆
浠ュお鍧婄殑鎸栫熆杩囩▼鍙鑳芥瘮姣旂壒甯佹洿涓哄嶆潅锛屽洜涓哄畠闇瑕佽В鍐矰AG鍥惧舰鐨勮$畻闂棰樸傝繖涔熸剰鍛崇潃浠ュお鍧婄殑鎸栫熆闇瑕佹洿楂樼殑绠楀姏鍜屾洿澶х殑鐢靛姏鏀鎸併備絾涓庢ゅ悓鏃讹紝浠ュお鍧婄綉缁滀篃鍏峰囦簡鏇撮珮鐨勫畨鍏ㄦу拰鍙闈犳э紝鍥犱负瀹冮渶瑕佹洿澶氱殑鑺傜偣鍙備笌瑙e喅璁$畻闂棰樸
鎬荤殑鏉ヨ达紝浠ュお鍧婄殑鎸栫熆鏂瑰紡鏄宸ヤ綔閲忚瘉鏄庣畻娉曪紝浣跨敤鐨勬槸ETHash绠楁硶锛岄渶瑕佽В鍐矰AG鍥惧舰鐨勮$畻闂棰樸傝繖绉嶆寲鐭挎柟寮忛渶瑕佹洿楂樼殑璁$畻鑳藉姏鍜岀數鍔涙敮鎸侊紝浣嗕篃涓轰互澶鍧婄綉缁滄彁渚涗簡鏇撮珮鐨勫畨鍏ㄦу拰鍙闈犳с

H. ETH的挖矿原理与机制

以太坊的挖矿过程与比特币的几乎是一样的。ETH通过挖矿产生,平均每15秒产生1个块,挖矿的时候,矿工使用计算机去计算一道函数计算题的答案,直到有矿工计算到正确答案即完成区块的打包信息,而作为第一个计算出来的矿工将会得到3枚ETH的奖励。

如果矿工A率先算出正确的答案,那么矿工A将获得以太币作为奖励,并在全网广播告诉所有矿工“我已经把答案算出来了”并让所有在答题的矿工们进行验证并更新正确答案。如果矿工B算出正确答案,那么其他矿工将会停止当前的解题过程,记录正确答案,并开始做下一道题,直到算出正确答案,并一直重复此过程。

矿工在这个游戏中很难作弊。他们是没法伪装工作又得出正确答案。这就是为什么这个解题的过程被称为“工作量证明”(POW)。

解题的过程大约每12-15秒,矿工就会挖出一个区块。如果矿工挖矿的速度过快或者过慢,算法会自动调整题目的难度,把出块速度保持在13秒左右。

矿工获取这些ETH币是有随机性的,挖矿的收益取决于投入的算力,就相当你的计算机越多,你答题的正确的概率也就越高,更容易获得区块奖励。

I. 一文了解以太坊矿机及挖矿原理

在以前的文章中,我们分别了解了比特币挖矿和以太坊挖矿的区别。本文重点介绍以太坊挖矿及矿机部分。

以太坊是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币ETH提供去中心化的以太虚拟机来处理点对点合约。目前ETH的挖矿主要是通过显卡矿机,所谓显卡矿机,其实就是类似家用台式机,只不过每台机器里面有6-10张显卡,并且没有显示器(如图)。

图:显卡矿机

之所以以太坊没有发展出类似于BTC一样的ASIC矿机,主要是由于ETH的特殊挖矿机制决定的。

在ETH挖矿过程中,会产生一个DAG文件,该文件需要一直被调用,因此必须有专门的存储空间放置。这个对于存储空间的硬性需求会导致即使生产出来了ASIC芯片,也并不能大幅度降低单位算力的成本。简单来说,就是性价比很差。

以太坊的DAG大小自2016年6月份引入Dagger-Hashimoto 算法时的1GB开始,以每年约520MB的速度增大到了现在的 3.7G,预计2020年底以太坊的DAG大小将增加至4G。届时,显存小于4G的显卡都将被陆续淘汰。

还需要介绍一点的是,由于显卡矿机的体积通常是比特币矿机的2-4倍,而消耗的电力却只有比特币矿机的1/2甚至更低,这就导致一般人不愿意修建专门的显卡矿机矿场(因为矿场主要赚取的是电费差价,同样面积的场地,可以放置的显卡数量少,消耗的电量更少)。即使有少量的显卡矿场,收取的电费成本通常也比比特币矿机矿场的高。

J. 2020骞翠互澶鍧婃寲鐭夸竴澶╄禋澶氬皯锛

浠ュお鍧婃寲鐭夸竴澶╄兘璧氱害鍑犲崄鍒板嚑鐧剧編鍏冧笉绛

浠ュお鍧婃寲鐭跨殑鏀剁泭鍙楀埌澶氱嶅洜绱犵殑褰卞搷锛屽寘鎷浠ュお鍧婁环鏍笺佹寲鐭块毦搴︺佺熆鏈烘ц兘绛夈傚叿浣撴潵璇达細

浠ュお鍧婁环鏍兼槸褰卞搷鎸栫熆鏀剁泭鐨勯噸瑕佸洜绱犮傚傛灉浠ュお鍧婁环鏍间笂娑锛屾寲鐭跨殑鏀剁泭涔熶細鐩稿簲澧炲姞銆傝繖鏄鍥犱负鎸栫熆鑾峰緱鐨勪互澶鍧婂彲浠ヤ綔涓烘姇璧勬垨浜ゆ槗璧勪骇锛屼环鏍间笂娑ㄦ剰鍛崇潃璧勪骇浠峰肩殑鎻愬崌銆

鎸栫熆闅惧害涔熸槸涓涓鍏抽敭鍥犵礌銆傞殢鐫瓒婃潵瓒婂氱殑鐭垮伐鍔犲叆浠ュお鍧婃寲鐭匡紝鎸栫熆鐨勯毦搴︿細閫愭笎澧炲姞銆傝繖鎰忓懗鐫鐭垮伐闇瑕佹洿澶氱殑璁$畻鑳藉姏鍜岀數鍔涙潵鎸栨帢浠ュお鍧婏紝浠庤屽炲姞浜嗘垚鏈銆傚洜姝わ紝鍦ㄩ毦搴﹁緝楂樼殑鎯呭喌涓嬶紝鐭垮伐闇瑕佹洿澶氱殑鏃堕棿鍜岃祫婧愭墠鑳借幏寰楃浉鍚岀殑鏀剁泭銆

鐭挎満鐨勬ц兘涔熸槸褰卞搷鎸栫熆鏀剁泭鐨勯噸瑕佸洜绱犱箣涓銆傛ц兘鏇村ソ鐨勭熆鏈哄彲浠ユ洿蹇鍦板勭悊浜ゆ槗骞舵寲鎺樺埌浠ュお鍧娿備笉鍚屽搧鐗屽拰鍨嬪彿鐨勭熆鏈烘ц兘宸寮傝緝澶э紝鍥犳わ紝鐭垮伐闇瑕佹牴鎹鑷宸辩殑闇姹傚拰棰勭畻閫夋嫨鍚堥傜殑鐭挎満杩涜屾寲鐭裤

缁煎悎浠ヤ笂鍥犵礌锛屼互澶鍧婃寲鐭夸竴澶╃殑鏀剁泭浼氬彈鍒板氱嶅洜绱犵殑褰卞搷锛屽叿浣撴敹鐩婂洜浜鸿屽紓銆備絾鏄锛岄氳繃鍚堢悊鐨勯厤缃鍜岀$悊锛岀熆宸ヤ粛鐒跺彲浠ラ氳繃浠ュお鍧婃寲鐭胯幏寰椾竴瀹氱殑鏀剁泭銆傝锋敞鎰忥紝鐢变簬鏁板瓧璐у竵甯傚満鐨勬尝鍔ㄦц緝澶э紝鍏蜂綋鐨勬敹鐩婃暟瀛楄繕闇瑕佹牴鎹甯傚満鎯呭喌杩涜岃瘎浼般

璇锋敞鎰忥紝鎸栫熆鏄涓涓闀挎湡鐨勮繃绋嬶紝骞朵笖闇瑕佹姇鍏ュぇ閲忕殑纭浠惰祫婧愬拰鐢靛姏鎴愭湰銆傚湪鑰冭檻鎸栫熆涔嬪墠锛屽姟蹇呭圭浉鍏冲洜绱犺繘琛屽厖鍒嗕簡瑙e拰璇勪及锛岀‘淇濊繖鏄涓涓鍙琛岀殑鎶曡祫椤圭洰銆

阅读全文

与以太坊挖矿源码成相关的资料

热点内容
2020深圳区块链广告 浏览:540
比特币有智能合约吗 浏览:872
以太坊打包要多久 浏览:511
人民币对比特币汇率查询 浏览:662
比特币现金矿工公司 浏览:815
国外比特币交易所支持人民币 浏览:570
年会比特币的梗 浏览:272
bth比特币热点挖矿 浏览:15
比特币是有现货的吗 浏览:695
中央对海南开放虚拟货币 浏览:261
家用电脑算力比特币 浏览:483
以太坊钱包添加网关 浏览:950
与数字货币有关的职业 浏览:980
虚拟货币交易手续费是多少 浏览:185
以太坊改pos还能挖矿吗 浏览:556
btc与bsv的关系 浏览:615
以太坊流向如何追踪 浏览:833
steem虚拟货币 浏览:543
比特币认证elf 浏览:613
xp怎么防止比特币病毒 浏览:178