eth测试网络奖励不对
⑴ Eth2瀛樻惧悎绾﹀彂甯冿紒濡備綍璐ㄦ娂浣犵殑 ETH 鎴愪负楠岃瘉鑰呭憿锛
鍏嶈矗澹版槑锛氭湰鏂囨棬鍦ㄤ紶閫掓洿澶氬競鍦轰俊鎭锛屼笉鏋勬垚浠讳綍鎶曡祫寤鸿銆傛枃绔犱粎浠h〃浣滆呰傜偣锛屼笉浠h〃鐏鏄熻储缁忓畼鏂圭珛鍦恒
灏忕紪锛氳板緱鍏虫敞鍝
鏉ユ簮锛歶nitimes
鍘熸枃鏍囬橈細Eth2瀛樻惧悎绾﹀彂甯冿紒濡備綍璐ㄦ娂浣犵殑ETH鎴愪负楠岃瘉鑰呭憿锛
浣滆咃細RyanSeanAdams
璇戣咃細Jhonny
缂栬緫锛歁ickey
Eth2椹涓婅佹潵浜嗐
鏍规嵁浠ュお鍧婂熀閲戜細瀹樺崥娑堟伅(瑙佷笅鍥)锛屼粖鏃Eth2瑙勮寖v1.0鐗堟湰姝e紡鍙戝竷锛屽寘鎷鍙戝竷闃舵0淇℃爣閾句富缃戠殑瀛樻惧悎绾(DepositContract)鍦板潃锛孍th2淇℃爣閾惧垱涓栧尯鍧楃殑璇炵敓鏃堕棿棰勮℃槸2020骞12鏈1鏃ャ
褰撳墠Eth2瀛樻惧悎绾﹀凡缁忛儴缃诧紝浠ュお鍧婂熀閲戜細鍏甯冪殑瀹樻柟瀛樻惧悎绾﹀湴鍧涓猴細鏍规嵁Eth2LaunchPad(launchpad.ethereum.org)鏄剧ず锛屾埅鑷虫挵鏂囨椂锛屽凡缁忔湁19,685ETH琚璐ㄦ娂杩涗簡璇ュ瓨娆惧悎绾︿腑锛佸綋瀛樻惧悎绾︿腑鐨凟TH璐ㄦ娂閲忚揪鍒524,288ETH(涔熷嵆鏈16,384鍚嶉獙璇佽呭弬涓庢姷鎶硷紝姣忓悕楠岃瘉鑰呮姷鎶32ETH)鏃讹紝鍒橢th2淇℃爣閾句富缃(Eth2闃舵0)灏嗕簬12鏈1鏃ユe紡鍚鍔锛屽惁鍒欎俊鏍囬摼鍒涗笘鍖哄潡璇炵敓鏃堕棿灏嗛『寤躲俒澶囨敞锛欵th2LaunchPad鏄疎th2楠岃瘉鑺傜偣蹇鎹峰惎鍔ㄥ钩鍙癩
闇瑕佹敞鎰忕殑鏄锛屽傛灉ETH鎸佹湁鑰呮兂瑕佹垚涓篍th2鐨勯獙璇佽妭鐐癸紝蹇呴』瑕佸叿鏈夊繀瑕佺殑纭浠惰佹眰鍜屾妧鏈涓撻暱锛屽苟閫氳繃瀹樻柟鐨凟th2LaunchPad鎸夌収鍒嗘ヨ存槑杩涜屾搷浣滐紝鍒囧嬁鐩存帴灏咵TH鍙戦佸埌璇ュ瓨娆惧悎绾﹀湴鍧锛岀洿鎺ュ皢ETH鍙戦佸埌璇ュ悎绾﹀湴鍧灏嗗艰嚧浜ゆ槗澶辫触锛岃屽苟涓嶆剰鍛崇潃鍦‥th2涓婂弬涓庤川鎶笺傚備綍鎴愪负Eth2缃戠粶楠岃瘉鑰呭憿锛熷湪璐ㄦ娂ETH涔嬪墠闇瑕佹敞鎰忎簺浠涔堝憿锛......鎴戜滑灏嗗湪鏈鏂囨兜鐩栦互涓嬪唴瀹癸細
Eth2楠岃瘉鑰呯‖浠惰佹眰锛涢夋嫨鍜屽畨瑁匛th2瀹㈡埛绔鈥樻惌寤篍th1鑺傜偣锛涗娇鐢‥th2LaunchPad瀹屾垚璐ㄦ娂銆
01
纭浠惰佹眰
鍩轰簬Eth2鍘讳腑蹇冨寲鐨勮捐$洰鏍囷紝棰勮Eth2楠岃瘉鑰呭皢浣跨敤鍚勭嶄笉鍚岀殑鍩虹璁炬柦(鏈鍦伴儴缃诧紝浜戠绛夌瓑)銆????濡傛灉浣犳ゅ墠灏氭湭鍙備笌Eth2娴嬭瘯缃戠殑ETH璐ㄦ娂鎿嶄綔锛屽彲浠ヤ娇鐢∕edalla娴嬭瘯缃戣繘琛岃瘯楠岋紝浠ユゆ潵鍐冲畾鍝绉嶈剧疆鑳藉熺粰浜堜綘鏈浣崇殑鍙備笌鎬ц兘銆傚湪姝e紡鎴愪负Eth2淇℃爣閾鹃獙璇佽呬箣鍓嶏紝璇风‘淇濆厛鍦ㄦ祴璇曠綉涓婅繘琛屼竴浜涙祴璇曪紒鍙閫氳繃姝ら摼鎺ュ弬涓庢垚涓篗edalla娴嬭瘯缃戠殑楠岃瘉鑰咃細
https://medalla.launchpad.ethereum.org/涓嬮潰鎴戜滑灏嗙粰浜堜竴浜涙垚涓篍th2楠岃瘉鑰呯殑纭浠惰佹眰锛屽府鍔╀綘鎻愬墠鍋氬ソ鍑嗗囷紒
鎺ㄨ崘鐨勭‖浠惰勬牸锛氭搷浣滅郴缁:64-bitLinux,MacOSX,Windows澶勭悊鍣:IntelCorei7-4770orAMDFX-8310(鎴栨洿浣)鍐呭瓨:8GBRAM瀛樺偍绌洪棿:100GB鍥烘佺‖鐩樺彲鐢ㄧ┖闂翠簰鑱旂綉杩炴帴:瀹藉甫缃戠粶杩炴帴(10Mbps)鐢垫簮:涓嶉棿鏂鐢垫簮渚涘簲(UPS)
鎴栬呴夋嫨浜戞彁渚涘晢锛屼互DigitalOcean浜戞彁渚涘晢涓轰緥锛
鐩稿簲鐨凞igitalOcean铏氭嫙鏈哄疄渚嬶細鍐呭瓨:8GBRAM瀛樺偍绌洪棿:160GB鍥烘佺‖鐩樺彲鐢ㄧ┖闂存e父杩愯屾椂闂:99.99%鍙鐢ㄦ:8涓鏁版嵁涓蹇$/姣忓皬鏃:$0.060$/姣忔湀:$40鏈浣庣‖浠惰勬牸:鎿嶄綔绯荤粺:64-bitLinux,MacOSX,Windows澶勭悊鍣:IntelCorei5-760orAMDFX-8110(鎴栬呮洿浣)鍐呭瓨:4GBRAM瀛樺偍绌洪棿:20GB鍥烘佺‖鐩樺彲鐢ㄧ┖闂翠簰鑱旂綉杩炴帴:瀹藉甫缃戠粶杩炴帴n(10Mbps)鐢垫簮:涓嶉棿鏂鐢垫簮渚涘簲(UPS)
鐩稿簲鐨凞igitalOcean铏氭嫙鏈哄疄渚:
鍐呭瓨:4GBRAM瀛樺偍绌洪棿:80GB鍥烘佺‖鐩樺彲鐢ㄧ┖闂存e父杩愯屾椂闂:99.99%鍙鐢ㄦ:8涓鏁版嵁涓蹇$/灏忔椂:$0.030$/鏈:$20
02
閫夋嫨骞跺畨瑁匛th2瀹㈡埛绔
Eth2鏈夌潃澶氫釜瀹㈡埛绔鍙浠ラ夋嫨锛岄獙璇佽呭湪杩愯岄獙璇佽呰妭鐐逛笘鍙浠ラ夋嫨涓嶅悓鐨勫㈡埛绔瀹炵幇銆傛埅鑷崇洰鍓嶏紝宸茬粡鏈4涓狤th2瀹㈡埛绔鍥㈤槦寮鍙戠殑Eth2瀹㈡埛绔鍙渚涢夋嫨锛岃繖浜汦th2瀹㈡埛绔鍒嗗竷寮忥細Teku銆丯imbus銆丩ighthouse鍜孭ry銆
Eth2瀹㈡埛绔
Pry鐢盤ryaticLabs鍥㈤槦寮鍙(Discord)锛
Pry鏄鍩轰簬Go鐨凟th2瀹㈡埛绔瀹炵幇锛屼笓娉ㄤ簬瀹㈡埛绔鐨勫彲鐢ㄦс佸畨鍏ㄦу拰鍙闈犳с侾ry瀹㈡埛绔浣跨敤Go璇瑷缂栧啓锛屾牴鎹瓽PL-3.0璁稿彲杩涜屽彂甯冦備娇鐢ㄨ存槑:https://docs.prylabs.network/docs/getting-started/Github:https://github.com/pryaticlabs/pry/
Lighthouse鐢盨igmaPrime鍥㈤槦寮鍙(Discord)锛
Lighthouse鏄鍩轰簬Rust鐨凟th2瀹㈡埛绔瀹炵幇锛岄潪甯告敞閲嶉熷害鍜屽畨鍏ㄦс侺ighthouse瀹㈡埛绔鑳屽悗鐨勫洟闃烻igmaPrime鏄涓瀹朵俊鎭瀹夊叏鍜岃蒋浠跺伐绋嬪叕鍙搞侺ighthouse鏍规嵁Apache2.0璁稿彲杩涜屽彂甯冦備娇鐢ㄨ存槑:https://lighthouse-book.sigmaprime.io/Github:https://github.com/sigp/lighthouse
Teku鐢盋onsenSys寮鍙(Discord)锛
PegaSysTeku鏄鍩轰簬Java鐨凟th2瀹㈡埛绔瀹炵幇锛屽叾璁捐″拰鎼寤烘棬鍦ㄦ弧瓒虫満鏋勯渶姹傚拰瀹夊叏瑕佹眰銆俆eku鑾峰緱浜咥pache2鐨勮稿彲锛屽苟鐢↗ava缂栧啓锛孞ava鏄涓绉嶆垚鐔熶笖骞挎硾浣跨敤鐨勮瑷銆備娇鐢ㄨ存槑:https://docs.teku.pegasys.tech/en/latest/HowTo/Get-Started/Build-From-Source/Github:https://github.com/PegaSysEng/teku
Nimbus鐢盨tatus寮鍙(Discord)锛
Nimbus鏄涓涓狤th2鐮旂┒椤圭洰鍜屼竴涓瀹㈡埛绔瀹炵幇锛屾棬鍦ㄥ湪宓屽叆寮忕郴缁熷拰涓浜虹Щ鍔ㄨ惧(鍖呮嫭鎼杞借祫婧愰檺鍒剁殑纭浠剁殑杈冩棭鐨勬櫤鑳芥墜鏈)涓婅壇濂借繍琛屻侼imbus(Apache2璁稿彲)浣跨敤Nim璇瑷缂栧啓锛孨im鏄涓绉嶅叿鏈夌被浼间簬Python璇娉曠殑璇瑷锛屽彲缂栬瘧涓篊璇瑷銆備娇鐢ㄨ存槑:https://nimbus.team/docs/Github:https://github.com/status-im/nim-beacon-chain
03
瀹夎匛th1鑺傜偣
杩愯孍th2楠岃瘉鑰呰妭鐐归櫎浜嗛渶瑕佸畨瑁呬竴涓狤th2瀹㈡埛绔涔嬪栵紝杩橀渶瑕佽繍琛屼竴涓狤th1鑺傜偣锛屾Eth1鑺傜偣鐢ㄤ簬鐩戣嗛獙璇佽呯殑32ETH鎶垫娂瀛樻俱傚湪鎼寤篍th1鑺傜偣鏃讹紝鍙浠ユ湁澶氱嶉夋嫨锛屼互涓嬫槸鏈甯哥敤鐨勫惎鍔‥th1鑺傜偣鐨勫伐鍏凤細
鑷鎵樼$殑Eth1鑺傜偣瀹㈡埛绔锛
OpenEthereum锛https://www.parity.io/ethereum/Geth锛https://geth.ethereum.org/Besu锛https://besu.hyperledger.org/en/stable/Nethermind锛https://www.nethermind.io/
绗涓夋柟鎵樼$殑Eth1鑺傜偣瀹㈡埛绔锛
Infura锛https://infura.io/
04
杩愯孍th2楠岃瘉鑰呰妭鐐
绗涓姝:鑾峰彇ETH
濡傛灉浣犱笉鐔熸倝浠ュお鍧婏紝閭d箞涓涓閲嶈佹ラゅ氨鏄鍏堣幏鍙栨垚涓篍th2楠岃瘉鑺傜偣鎵闇鐨凟TH銆傛瘡涓狤th2楠岃瘉鑰呰妭鐐归兘闇瑕佽川鎶32ETH銆傝锋敞鎰忥紝濡傛灉浣犳渶缁堟垚鍔熷湴鎴愪负浜咵th2楠岃瘉鑰咃紝鍒欐剰鍛崇潃浣犲规ゅ弬涓庤″垝鍋氬嚭浜嗛暱鏈熸壙璇(鍥犱负鐭鏈熷唴杩欎簺璐ㄦ娂鐨凟TH鏃犳硶鍙栧嚭)銆傚傛灉浣犻渶瑕佽幏鍙栦竴浜汦TH锛屽彲閫氳繃鍔犲瘑璐у竵浜ゆ槗鎵杩涜岃幏鍙栵紝姣斿傦細
娉曞竵浜ゆ槗鎵(缇庡浗鍦板尯):Coinbase鎴栬匞emini娉曞竵浜ゆ槗鎵(闈炵編鍥藉湴鍖):Binance鎴栬匥raken浠ュお鍧婂幓涓蹇冨寲浜ゆ槗鎵:Uniswap绗浜屾:鍓嶅線Eth2Launchpad骞冲彴杩涜孍TH璐ㄦ娂
鍦ㄨ繃鍘荤殑鍑犱釜鏈堜腑锛屼互澶鍧婂熀閲戜細(EF)銆丆odefiActivate鍜孌eepWorkStudio涓鐩村湪寮鍙戜竴涓狤th2楠岃瘉鑰呰妭鐐瑰揩鎹峰惎鍔ㄧ晫闈锛屼互浣跨敤鎴锋洿瀹规槗鍙備笌ETH璐ㄦ娂骞舵垚涓篍th2楠岃瘉鑰呫傝繖椤瑰伐浣滅殑缁撴灉灏辨槸Eth2LaunchPad骞冲彴鐨勫彂甯冿紝璇ュ钩鍙版棬鍦ㄥ畨鍏ㄥ湴鎸囧肩敤鎴峰畬鎴愮敓鎴怑th2瀵嗛挜瀵瑰苟灏32ETH璐ㄦ娂杩汦th2瀹樻柟鐨勫瓨娆惧悎绾︿腑銆侲th2LaunchPad鏄涓哄湪瀹跺嵆鍙鍙備笌Eth2楠岃瘉鑺傜偣鐨勪汉鑰岃捐$殑锛屼篃鍗虫墦绠楄繍琛岃嚜宸辩殑Eth2楠岃瘉鑰呰妭鐐圭殑涓氫綑鐖卞ソ鑰咃紝骞舵帴鍙楀湪鑷宸辩殑璁$畻鏈虹粓绔灞忓箷涓婅繍琛屽懡浠ゃ
绗浜屾:灏借亴璋冩煡
鍦ㄦ垚涓篍th2楠岃瘉鑰呰妭鐐圭殑杩囩▼涓锛岃姳鐐规椂闂撮槄璇讳竴涓婨th2LaunchPad骞冲彴涓婄殑鍐呭规槸闈炲父閲嶈佺殑锛佽ュ钩鍙颁笂鐨勨淥verview鈥(姒傝堪)閮ㄥ垎鏃ㄥ湪浣夸綘鐭ユ檽鍦ㄨ川鎶糆TH鏃舵墍娑夊強鐨勯庨櫓鍜岀浉鍏充俊鎭銆傚寘鎷锛(1)Eth2浣跨敤PoS(鏉冪泭璇佹槑鏈哄埗)鏉ヤ繚鎶ゆ暣涓缃戠粶銆備负姝わ紝缃戠粶闇瑕佹椿璺冪殑鍙備笌鑰(涔熷嵆楠岃瘉鑰)鏉ユ彁璁銆侀獙璇佸拰淇濊瘉鍖哄潡鐨勬湁鏁堟с備綔涓轰氦鎹锛岃瘹瀹炵殑楠岃瘉鑰呭皢鑾峰緱璐㈠姟濂栧姳銆傞噸瑕佺殑鏄锛岄獙璇佽呴渶瑕佽川鎶糆TH浣滀负鎶垫娂鍝侊紝鎹㈠彞璇濊达紝闇瑕佽川鎶间竴浜涜祫閲戙傛垚涓洪獙璇佽呯殑鍞涓鏂规硶鏄鍦ㄥ綋鍓嶇殑浠ュお鍧婇摼(涔熷嵆Eth1閾)涓婂線瀛樻惧悎绾﹀彂閫佷竴绗斿崟鍚戠殑ETH浜ゆ槗銆(2)瑕佹垚涓篍th2楠岃瘉鑰咃紝浣犻渶瑕佸规瘡涓瑕佽繍琛岀殑楠岃瘉鑰呰妭鐐归兘璐ㄦ娂32ETH銆傛敞鎰忥紝姝ゆ姷鎶艰繃绋嬫槸鍗曞悜涓嶅彲閫嗙殑銆(3)鍙鏈夌Н鏋佸弬涓嶦th2鍏辫瘑鐨勯獙璇佽呮墠鑳借幏寰楀栧姳銆傜荤嚎鐨勯獙璇佽呬細鍙楀埌鎯╃綒銆傛煇鑺傜偣绂荤嚎鍙楀埌鐨勬儵缃氬姏搴︿笌璇ヨ妭鐐圭Н鏋佸弬涓庡叡璇嗘椂鍙浠ヨ幏寰楃殑濂栧姳鐩稿綋銆(4)杩涜屾伓鎰忚屼负鎴栬呬笌Eth2瑙勮寖鑳岄亾鑰岄┌鐨勯獙璇佽咃紝寰堝规槗鍙楀埌缃氭病鎯╃綒(getslashed)锛岃繖灏嗘嫑鑷村法棰濇儵缃氥(5)楠岃瘉鑰呭瘑閽ユ槸浠庡敮涓鐨勫姪璁拌瘝(绉嶅瓙)娲剧敓鐨勩備綘鐨勭嶅瓙鏄鍙栨炬椂鐨勫敮涓閫斿緞銆傚洜姝わ紝鏈閲嶈佺殑鏄纭淇濆叾瀹夊叏锛佽峰囦唤濂戒綘鐨勫姪璁拌瘝锛(6)Eth2LaunchPad灏嗗府鍔╃敤鎴峰垱寤烘瘡涓楠岃瘉鑰呰妭鐐圭殑绛惧悕瀵嗛挜瀵(涓嶅悓鐨勯獙璇佽呰妭鐐归兘鏈変笉鍚岀殑绛惧悕瀵嗛挜锛屽嵆渚挎煇涓鐢ㄦ埛鍚屾椂杩愯屼簡澶氫釜楠岃瘉鑰呰妭鐐癸紝浣嗗悓涓涓鐢ㄦ埛杩愯岀殑澶氫釜楠岃瘉鑰呰妭鐐瑰彲浠ヤ娇鐢ㄥ悓涓涓鍙栨惧瘑閽)锛岃繖浜涚惧悕瀵嗛挜灏嗕細淇濆瓨鍦╧eystore(瀵嗛挜搴撴枃浠)涓(娉ㄦ剰锛氭瘡涓楠岃瘉鑰呯殑绛惧悕瀵嗛挜浼氫繚瀛樺湪鍗曠嫭鐨刱eystore涓)锛屽綋浣犱娇鐢ㄩ獙璇佽呰蒋浠跺紑濮嬮獙璇佷箣鍓嶏紝浣犻渶瑕佸皢keystore瀵煎叆鍒伴獙璇佽呰蒋浠朵腑銆傞氳繃Eth2LaunchPad鍒涘缓楠岃瘉鑰呰妭鐐规椂锛屼綘杩樹細鏀跺埌涓涓瀛樻炬枃浠(depositfile锛屾枃浠跺悗缂涓.json)锛岄渶瑕佸皢璇ュ瓨娆炬枃浠朵笂浼犺嚦Eth2LaunchPad缃戠珯涓娿(瀵规ゆ垜浠灏嗗湪涓嬫枃杩涜岃В閲)(7)楠岃瘉鑰呬箣闂寸殑杞璐﹁嚦灏戝湪Eth2闃舵1涔嬪墠鏄鏃犳硶瀹炵幇鐨勩傞獙璇佽呭繀椤荤瓑鍒伴樁娈2(澶х害杩樿2骞存椂闂)鎵嶈兘灏嗚祫閲戞彁鍙栧埌鏌愪釜鐗瑰畾鐨勫垎鐗囬摼涓娿(8)鐢变簬鑷冲皯鍦ㄩ樁娈1鍒版潵涔嬪墠锛岄獙璇佽呮棤娉曡繘琛岃浆璐︼紝鍥犳ゅ湪姝や箣鍓嶏紝楠岃瘉鑰呮棤娉曡嚜鎰块鍑洪獙璇佽呰屽垪骞堕噸鏂板惎鍔ㄨ妭鐐广傝繖鎰忓懗鐫楠岃瘉鑰呭皢闇瑕佸湪寰堥暱鐨勪竴娈垫椂闂村唴鍙備笌Eth2鍏辫瘑涔嬩腑锛(9)褰撳墠鐢ㄦ埛鍙備笌杩涙潵鐨勬槸鍒濆嬪彂甯冪殑Eth2鏂板瀷缃戠粶涓锛屼笌浠讳綍鏂拌蒋浠朵竴鏍凤紝瀛樺湪娼滃湪鐨刡ugs銆傝櫧鐒朵笉澶鍙鑳斤紝浣嗘綔鍦ㄧ殑bugs鍙鑳戒細瀵艰嚧鑺傜偣鍙楀埌slashing(缃氭病)鎯╃綒銆(10)涓轰簡鎴愪负楠岃瘉鑰咃紝浣犲皢闇瑕佺敓鎴愭柊鐨凟th2瀵嗛挜瀵广備负姝わ紝鍚屾椂涔熶负浜嗗畨瑁呴獙璇佽呰蒋浠讹紝浣犻渶瑕佸湪鎶鏈涓婃湁鑳藉姏鍦ㄨ$畻鏈虹粓绔涓婅繍琛屽懡浠よ屻
绗涓夋ワ細鐢熸垚瀵嗛挜瀵瑰拰鍔╄拌瘝
瀵逛簬姣忎釜楠岃瘉鑰呰妭鐐癸紝浣犻兘闇瑕佺敓鎴愰獙璇佽呭瘑閽ュ瑰拰涓涓鍔╄拌瘝锛岃ュ姪璁拌瘝鐢ㄤ簬涔嬪悗鐢熸垚浣犵殑鍙栨惧瘑閽ャ傞栧厛锛屼綘闇瑕佸湪Eth2LaunchPad涓婂~鍐欎綘鎯宠佽繍琛岀殑楠岃瘉鑰呰妭鐐规暟閲忥紝浠ュ強浣犳兂瑕佸湪鍝绉嶆搷浣滅郴缁熶笂杩愯岄獙璇佽呰妭鐐广傝佷笅鍥????
鎺ヤ笅鏉ワ紝Eth2LaunchPad骞冲彴灏嗕负浣犳彁渚涗袱涓閫夐」鐢ㄤ簬鐢熸垚浣犵殑瀛樻惧瘑閽(depositkeys)銆備綘鍙浠ラ氳繃涓嬫柟閾炬帴鎵惧埌閽堝逛綘鐨勬搷浣滅郴缁熺殑璇︾粏璇存槑锛https://github.com/ethereum/eth2.0-deposit-cli/blob/master/README.ithubrepoandthenrunthe./.绗涓涓閫夐」鏄浣跨敤浣犱粠Eth2Githubrepo(https://github.com/ethereum/eth2.0-deposit-cli/releases/)涓嬭浇鐨勪簩杩涘埗鍙鎵ц屾枃浠讹紝鐒跺悗鍦ㄤ綘鐨勭粓绔绐楀彛涓杩愯./deposit鍛戒护銆傝佷笅鍥????璇疯板緱楠岃瘉浠ヤ笅璇ョ綉鍧锛岀‘淇濅綘浣跨敤鐨勬槸姝g‘鐨勭綉鍧鏉ヤ笅杞斤紒
绗浜屼釜閫夐」鏄浠嶱ython婧愪唬鐮佹惌寤篸eposit-CLI宸ュ叿銆備綘灏嗛渶瑕佹寜鐓ц存槑杩涜屾搷浣滐紝浠ョ‘淇濅綘宸插畨瑁呮墍鏈夊繀闇鐨勫紑鍙戝簱鍜宒eposit-CLI宸ュ叿銆傝佷笅鍥????
褰撲綘瀹夎呬簡deposit-CLI宸ュ叿骞跺湪浣犵殑缁堢绐楀彛杩愯屾ゅ伐鍏锋椂锛屼綘灏嗚鎻愮ず锛
鏄庣‘浣犳兂瑕佽繍琛岀殑楠岃瘉鑰呰妭鐐圭殑鏁伴噺锛涗綘鎯宠佺敤浜庣敓鎴愬姪璁拌瘝鐨勮瑷锛涙槑纭浣犳兂瑕佽繍琛岄獙璇佽呰妭鐐圭殑缃戠粶(涓荤綉)銆
璇风‘淇濅綘璁剧疆鐨勬槸--chainmainnet锛屽惁鍒欏瓨娆惧皢鏃犳晥銆傜幇鍦锛屼綘灏嗚瑕佹眰璁剧疆浣犵殑瀵嗙爜(password)锛屼竴鏃﹀瘑鐮佺‘瀹氾紝浣犵殑鍔╄拌瘝灏嗚鐢熸垚銆傝风‘淇濅綘灏嗗姪璁拌瘝鍐欎笅鏉ワ紝骞跺皢鍏剁荤嚎瀛樺偍鍦ㄥ畨鍏ㄧ殑鍦版柟锛佸傛灉浣犲凡缁忔垚鍔熷湴瀹屾垚浜嗚ユラわ紝閭d綘搴旇ュ彲浠ョ湅鍒颁笅鏂硅繖涓灞忓箷????
濡傛灉浣犲筪eposit-cli鏈夌枒闂锛岃疯块棶鍏禛itHubrepository:https://github.com/ethereum/eth2.0-deposit-cli
绗鍥涙ワ細涓婁紶浣犵殑瀛樻炬枃浠
浣犻┈涓婂氨瑕佸畬鎴愪簡锛佷笅涓姝ユ槸涓婁紶浣犲湪涓婁竴姝ョ敓鎴愮殑.json瀛樻炬枃浠躲傝ユ枃浠朵綅浜/eth2.0-deposit-cli/validator_keys鐩褰曚腑锛屾枃浠惰鍛藉悕涓篸eposit-data-[timestamp].json銆
绗浜旀ワ細杩炴帴浣犵殑閽卞寘
鎺ヤ笅鏉ュ氨鏄杩炴帴浣犵殑Web3閽卞寘锛屽苟鐐瑰嚮缁х画銆傝风‘淇濅綘鍦ㄤ綘鐨勯挶鍖呰剧疆涓閫夋嫨浜嗕富缃戠幆澧冦傚姞涓嬪浘????
绗鍏姝ワ細纭璁や氦鏄撲俊鎭鍙戣捣鎶垫娂瀛樻
褰撲綘杩炴帴閽卞寘骞剁‘璁や綘鐨勯挶鍖呭湴鍧鍚庯紝浣犲皢杩涘叆涓涓鎬荤粨鎬х殑椤甸潰锛岃ラ〉闈㈠皢鏄剧ず浣犻渶瑕佸悜瀛樻惧悎绾︿腑鍙戦佺殑ETH鎬绘暟閲(鏍规嵁姝ゅ墠浣犻夋嫨杩愯岀殑楠岃瘉鑰呰妭鐐规暟閲忥紝姣忎釜楠岃瘉鑰32ETH)銆傜偣鍑诲悓鎰忚︽垝妫鏌(alertchecks)锛岀劧鍚庡崟鍑荤‘璁や互瀵艰埅鍒版渶鍚庝竴姝モ斺旇繘琛屽疄闄呭瓨娆俱傜偣鍑烩淚nitiatetheTransaction鈥(鍙戣捣浜ゆ槗)锛屽皢浣犵殑ETH璐ㄦ娂杩涘畼鏂圭殑Eth2瀛樻惧悎绾︿腑銆備綘灏嗛渶瑕侀氳繃浣犵殑閽卞寘纭璁ゆ瘡涓楠岃瘉鑰呯殑32ETH璐ㄦ娂娆俱傚綋杩欑瑪浜ゆ槗纭璁や箣鍚庯紝浣犲氨瀹屾垚浜咵th2璐ㄦ娂鎿嶄綔浜嗭紒????绁濊春锛侊紒
⑵ 銆愬繀鐪嬨慐TH浣庨庨櫓濂楀埄鐨勪竴绉嶆柟娉
璇濅笉澶氳达紝鐩存帴涓婂共璐с
杩戜竴娈靛叧娉‥OS浼楃规瘮杈冨氾紝鐪嬪埌鏈夊皬浼欎即鏍规嵁EOS/ETH鐨勬暟鎹锛屽彂浜嗗備笅涓寮犲浘锛
鍥句腑鏄庢樉鍙浠ョ湅鍑烘定璺屽懆鏈熷熀鏈浠23灏忔椂涓轰竴涓杞鍥烇紝濡傛灉鍦ㄦ瘡闂撮殧23灏忔椂楂樺崠浣庝拱涓娆★紝绠楁槸涓绉嶆瘮杈冪ǔ濡ョ殑鑾峰埄鍔炴硶銆
浣犱竴瀹氬緢濂藉囷紝杩欑湡鐨勬槸涓涓瑙勫緥鍚楋紵鎴栬呰翠负浠涔堟槸杩欐牱鍛锛
杩欒繕瑕佷粠EOS浼楃瑰紑濮嬭磋捣銆侭M褰撴椂澶╂墠鐨勬彁鍑轰簡EOS浼楃圭殑鎯虫硶锛屼互23灏忔椂涓哄懆鏈燂紝鎸佺画涓骞达紝姝ょ嶄紬绛规柟寮忓彲璋撳墠鏃犲彜浜恒
鎴戠寽娴婤M鏄涓嶆槸鑰冭檻鍖哄潡閾句箖鏄鍏ㄧ悆鍏卞悓鍏虫敞鐨勯」鐩锛屽洜姝ゆ妸浼楃规椂闂村浐瀹氬湪鍑犵偣浼间箮閮戒笉鍚堥傦紝閭e共鑴嗚疆娴侊紝姣忎釜鏃堕棿閮借疆鍒般
鐜板湪鎶奅TH鎹㈡垚EOS鏈変袱绉嶆柟寮忥紝涓鏄鍦ㄤ簩绾у競鍦轰拱鍏ワ紝浜屾槸鍙備笌涓绾у競鍦虹殑浼楃广
鍋囪句竴绾у競鍦轰紬绛圭殑浠锋牸鎸佺画楂樹簬浜岀骇甯傚満涔板叆锛岄偅涔堝弬涓庝紬绛圭殑浜哄繀鐒惰秺鏉ヨ秺灏戯紝璁╁弬涓庝竴绾у競鍦轰紬绛圭殑浠锋牸鎱㈡參闄嶄綆銆傞檷浣庡埌浠涔堢▼搴﹀憿锛熸瘮杈冨悎鐞嗙殑缁撴灉鏄锛氫竴绾у競鍦轰紬绛圭殑浠锋牸鐣ヤ綆浜庢垨绛変簬浜岀骇甯傚満鐨勪环鏍笺
涓句竴涓渚嬪瓙灏辨槑鐧戒簡锛屼互涓嬫暟鎹浠呬负璇存槑鐢ㄣ
姣斿傚湪浜岀骇甯傚満锛堝氨鏄鍦ㄤ氦鏄撴墍涔板叆锛1涓狤TH鍙浠ユ崲40涓狤OS锛屼絾鏄鍦ㄤ竴绾у競鍦猴紙鍙備笌浼楃癸級1涓狤TH鍙浠ユ崲41涓狤OS锛岄偅蹇呯劧鏈変汉浼氱敤1涓狤TH鍙備笌浼楃规崲鏉41涓狤OS锛岀劧鍚庡湪浜岀骇甯傚満鎹㈠洖ETH锛岃繖鏍峰湪涓嶈冭檻鎵嬬画璐圭殑鎯呭喌涓嬶紝1涓狤TH灏卞彉鎴愪簡1025涓狤TH锛岃幏鍒╀簡25%銆
杩戞湡闅忕潃EOS浠锋牸鐨勮蛋楂橈紝姣忓ぉ鍙備笌浼楃圭殑ETH澶氳揪4涓囧氫釜銆
杩欓噷鑲瀹氭湁涓嶅皯姣斾緥鐨勮祫閲戞槸鍦ㄨ繘琛屼竴绾у競鍦哄拰浜岀骇甯傚満鐨勬惉鐮栧楀埄銆
濡傛灉鐭ラ亾浜嗚繖涓鍘熺悊锛岄偅涔堝彲浠ュ垎鏋愬嚭鍦‥OS鐨勪紬绛规椂闂寸偣灏辨槸涓涓狤OS浠锋牸鐨勭浉瀵逛綆鐐癸紝杩欐椂鐢‥TH鎹㈡垚EOS锛岀瓑杩囦竴灏忔垫椂闂寸瓑EOS娑ㄤ笂鍘伙紝鍐嶆妸EOS鎹㈠洖ETH锛屽疄鐜板楀埄銆
浠ユ渶杩戜袱鍛ㄥ氱殑鏁版嵁鏉ュ垎鏋愶紝鍋囪惧湪姣忓ぉ浼楃圭殑鏃堕棿鐐规妸ETH鎹㈡垚EOS锛屽湪涓灏忔椂鍚庢妸EOS鎹㈠洖ETH锛屽彲浠ョ泩鍒╁氬皯鍛锛
缁忚繃璁$畻锛屾渶杩18澶╃殑鏀剁泭鎬昏′负36%锛岀湅璧锋潵涓嶇畻澶氾紝濂藉勬槸椋庨櫓杈冨皬銆
濡傛灉璧勯噾閲忚緝澶ф敹鐩婄粷瀵规敹鐩婁篃姣旇緝鍙瑙傘
鍗充娇鍙戠敓椋庨櫓锛孍OS鍜孍TH涔熼兘鏄澶у竵绉嶏紝涔熶笉浼氱牳鍦ㄦ墜閲屻
鐢变簬鏃堕棿浠撲績锛屾垜鍚庣画浼氭洿鏂颁笂杩拌〃鏍硷紝琛ュ厖EOS浼楃瑰綋鏃剁殑浠锋牸鍜屼紬绛1灏忔椂鍚庣殑浠锋牸銆
鏈鍚庡皬缁撲竴涓嬫搷浣滄ラわ細
鈶犲湪EOS鐨勪紬绛圭綉绔欐煡璇㈡瘡澶〦OS鐨勪紬绛规椂闂
鈶″湪浼楃规椂闂寸偣锛屽湪浜ゆ槗缃戠珯锛堝傚竵瀹夛級鐢‥TH涔板叆EOS
鈶1灏忔椂鍚庡啀鎶奅OS鎹㈠洖ETH
杩欐槸涓绉嶄綆椋庨櫓濂楀埄鐨勬柟寮忥紝浣嗗苟涓嶄唬琛ㄦ病鏈夐庨櫓銆傛湁鏃朵簩绾у競鍦虹殑娉㈠姩姣旇緝澶э紝鍑虹幇鏆傛椂鐨勪簭鎹熶篃鏄姝e父鐨勩
濡傚湪鍥句腑鍙浠ョ湅鍒帮紝鍦4鏈29鏃ワ紝甯傚満娉㈠姩鏋佸ぇ锛屽湪浼楃瑰悗鐨勪竴涓灏忔椂鍐匛OS/ETH涓嬭穼浜41%銆
涓嶈繃鎴戜滑鍋氫簨鎯咃紝鍙瑕佸仛姒傜巼澶х殑浜嬫儏鍗冲彲銆傚傛灉鍍忛摱琛屽瓨娆鹃偅鏍凤紝铏界劧鍑犱箮鏃犻庨櫓锛屼絾骞村寲鏀剁泭鐜囧彧鏈夊尯鍖175%銆
濡傛灉鐢ㄧ悊鎬ф垬鑳滀汉鎹熷け鍘屾伓鐨勬劅鎬э紝閭d箞浜虹殑鑳藉姏杈圭晫鏃犵枒灏辨墿澶т簡涓浜涖
杩欎篃鏄鍊熼壌浜嗛噺鍖栦氦鏄撶殑鎬濊矾锛屽傛灉纭璁や竴浠朵簨鎯呮槸澶ф傜巼鑾峰埄锛岄偅灏卞︿範鍐峰啺鍐扮殑璁$畻鏈猴紝姣鏃犳劅鎯呯殑鎵ц屽嵆鍙銆
杩欓噷鏈変竴鐐归渶瑕佽存槑锛氱幇鍦ㄨ窛绂籈OS涓荤綉涓婄嚎杩樻湁鏈鍚庝竴涓鏈堬紝鎵浠ヨ繖绉嶄綆椋庨櫓濂楀埄鐨勫姙娉曞彧鑳藉啀鎸佺画4鍛锛屾湁鍏磋叮灏濊瘯鐨勫皬浼欎即鍙瑕佹姄绱т簡銆
ETH鐨勬寲鐭垮師鐞嗕笌鏈哄埗
寰呭瓧闂轰腑寮鍙戜簡涓闂ㄥ尯鍧楅摼鏂归潰鐨勮剧▼锛氥婃繁鍏ユ祬鍑篍TH鍘熺悊涓庢櫤鑳藉悎绾﹀紑鍙戙嬶紝椹鑹鑰佸笀璁叉巿銆傛ゆ枃闆嗚板綍鎴戠殑瀛︿範绗旇般
璇剧▼鍏8鑺傝俱傚叾涓锛屽墠鍥涜捐睧TH鍘熺悊锛屽悗鍥涜捐叉櫤鑳藉悎绾︺
绗鍥涜惧垎涓轰笁閮ㄥ垎锛
杩欑瘒鏂囩珷鏄绗鍥涜剧涓閮ㄥ垎鐨勫︿範绗旇帮細Ethash绠楁硶銆
杩欒妭璇句粙缁嶇殑鏄浠ュお鍧婇潪甯告牳蹇冪殑鎸栫熆绠楁硶銆
鍦ㄤ粙缁岴thash绠楁硶涔嬪墠锛屽厛璁蹭竴浜涜儗鏅鐭ヨ瘑銆傚叾瀹炲尯鍧楅摼鎶鏈涓昏佹槸瑙e喅涓涓鍏辫瘑鐨勯棶棰橈紝鑰屽叡璇嗘槸涓涓灞傛″緢涓板瘜鐨勬傚康锛岃繖閲屾妸鑼冪暣缂╁皬锛屽彧璁ㄨ哄尯鍧楅摼涓鐨勫叡璇嗐
浠涔堟槸鍏辫瘑锛
鍦ㄥ尯鍧楅摼涓锛屽叡璇嗘槸鎸囧摢涓鑺傜偣鏈夎拌处鏉冦傜綉缁滀腑鏈夊氫釜鑺傜偣锛岀悊璁轰笂閮芥湁璁拌处鏉冿紝棣栧厛闈涓寸殑闂棰樺氨鏄锛屽埌搴曡皝鏉ヨ板笎銆傚彟涓涓闂棰橈紝浜ゆ槗涓瀹氭槸鏈夐『搴忕殑锛屽嵆璋佸湪鍓嶏紝鍓嶅湪鍚庛傝繖鏍峰彲浠ヨВ鍐冲弻鑺遍棶棰樸傚尯鍧楅摼涓鐨勫叡璇嗘満鍒跺氨鏄瑙e喅杩欎袱涓闂棰橈紝璋佽板笎鍜屼氦鏄撶殑椤哄簭銆
浠涔堟槸宸ヤ綔閲忚瘉鏄庣畻娉
涓轰簡鍐冲畾浼楀氳妭鐐逛腑璋佹潵璁板笎锛屽彲浠ユ湁澶氱嶆柟妗堛傚叾涓锛屽伐浣滈噺璇佹槑灏辫╄妭鐐瑰幓绠椾竴涓鍝堝笇鍊硷紝婊¤冻闅惧害鐩鏍囧肩殑鑳滃嚭銆傝繖涓杩囩▼鍙鑳介氳繃鏋氫妇璁$畻锛岃皝绠楃殑蹇锛岃皝鑾疯儨鐨勬傜巼澶с傛敹鐩婅窡鑺傜偣鐨勫伐浣滈噺鏈夊叧锛岃繖灏辨槸宸ヤ綔閲忚瘉鏄庣畻娉曘
涓轰粈涔堣佸紩鍏ュ伐浣滈噺璇佹槑绠楁硶锛
Hash Cash 鐢盇dam Back 鍦1997骞村彂琛锛屼腑鏈鑱棣栨″湪姣旂壒甯佷腑搴旂敤鏉ヨВ鍐冲叡璇嗛棶棰樸
瀹冩渶鍒濈敤鏉ヨВ鍐冲瀮鍦鹃偖浠堕棶棰樸
鍏朵富瑕佽捐℃濇兂鏄閫氳繃鏆村姏鎼滅储锛屾壘鍒颁竴绉岯lock澶撮儴缁勫悎锛堥氳繃璋冩暣nonce锛変娇寰楀祵濂楃殑SHA256鍗曞悜鏁e垪鍊艰緭鍑哄皬浜庝竴涓鐗瑰畾鐨勫硷紙Target锛夈
杩欎釜绠楁硶鏄璁$畻瀵嗛泦鍨嬬畻娉曪紝涓寮濮嬩粠CPU鎸栫熆锛岃浆鑰屼负GPU锛岃浆鑰屼负FPGA锛岃浆鑰屼负ASIC锛屼粠鑰屼娇寰楃畻鍔涘彉寰楅潪甯搁泦涓銆
绠楀姏闆嗕腑灏变細甯︽潵涓涓闂棰橈紝鑻ユ湁涓涓鐭挎睜鐨勭畻鍔涜揪鍒51%锛屽垯瀹冨氨浼氭湁浣滄伓鐨勯庨櫓銆傝繖鏄姣旂壒甯佺瓑浣跨敤宸ヤ綔閲忚瘉鏄庣畻娉曠殑绯荤粺鐨勫紛绔銆傝屼互澶鍧婂垯鍚稿彇浜嗚繖涓鏁欒锛岃繘琛屼簡涓浜涙敼杩涳紝璇炵敓浜咵thash绠楁硶銆
Ethash绠楁硶鍚稿彇浜嗘瘮鐗瑰竵鐨勬暀璁锛屼笓闂ㄨ捐′簡闈炲父涓嶅埄鐢ㄨ$畻鐨勬ā鍨嬶紝瀹冮噰鐢ㄤ簡I/O瀵嗛泦鐨勬ā鍨嬶紝I/O鎱锛岃$畻鍐嶅揩涔熸病鐢ㄣ傝繖鏍凤紝瀵逛笓鐢ㄩ泦鎴愮數璺鍒欎笉鏄閭d箞鏈夋晥銆
璇ョ畻娉曞笹PU鍙嬪ソ銆備竴鏄鑰冭檻濡傛灉鍙鏀鎸丆PU锛屾媴蹇冩槗琚鏈ㄩ┈鏀诲嚮锛涗簩鏄鐜板湪鐨勬樉瀛橀兘寰堝ぇ銆
杞诲瀷瀹㈡埛绔鐨勭畻娉曚笉閫備簬鎸栫熆锛屾槗浜庨獙璇侊紱蹇閫熷惎鍔
绠楁硶涓锛屼富瑕佷緷璧栦簬Keccake256 銆
鏁版嵁婧愰櫎浜嗕紶缁熺殑Block澶撮儴锛岃繕寮曞叆浜嗛殢鏈烘暟闃靛垪DAG锛堟湁鍚戦潪寰鐜鍥撅級锛圴italik鎻愬嚭锛
绉嶅瓙鍊煎緢灏忋傛牴鎹绉嶅瓙鍊肩敓鎴愮紦瀛樺硷紝缂撳瓨灞傜殑鍒濆嬪间负16M锛屾瘡涓涓栦唬澧炲姞128K銆
鍦ㄧ紦瀛樺眰涔嬩笅鏄鐭垮伐浣跨敤鐨勬暟鎹鍊硷紝鏁版嵁灞傜殑鍒濆嬪兼槸1G锛屾瘡涓涓栦唬澧炲姞8M銆傛暣涓鏁版嵁灞傜殑澶у皬鏄128Bytes鐨勭礌鏁板嶃
妗嗘灦涓昏佸垎涓轰袱涓閮ㄥ垎锛屼竴鏄疍AG鐨勭敓鎴愶紝浜屾槸鐢℉ashimoto鏉ヨ$畻鏈缁堢殑缁撴灉銆
DAG鍒嗕负涓変釜灞傛★紝绉嶅瓙灞傦紝缂撳瓨灞傦紝鏁版嵁灞傘備笁涓灞傛℃槸閫愭笎澧炲ぇ鐨勩
绉嶅瓙灞傚緢灏忥紝渚濊禆涓婁釜涓栦唬鐨勭嶅瓙灞傘
缂撳瓨灞傜殑绗涓涓鏁版嵁鏄鏍规嵁绉嶅瓙灞傜敓鎴愮殑锛屽悗闈㈢殑鏍规嵁鍓嶉潰鐨勪竴涓鏉ョ敓鎴愶紝瀹冩槸涓涓涓茶屽寲鐨勮繃绋嬨傚叾鍒濆嬪ぇ灏忔槸16M锛屾瘡涓涓栦唬澧炲姞128K銆傛瘡涓鍏冪礌64瀛楄妭銆
鏁版嵁灞傚氨鏄瑕佺敤鍒扮殑鏁版嵁锛屽叾鍒濆嬪ぇ灏1G锛岀幇鍦ㄧ害2涓狦锛屾瘡涓鍏冪礌128瀛楄妭銆傛暟鎹灞傜殑鍏冪礌渚濊禆缂撳瓨灞傜殑256涓鍏冪礌銆
鏁翠釜娴佺▼鏄鍐呭瓨瀵嗛泦鍨嬨
棣栧厛鏄澶撮儴淇℃伅鍜岄殢鏈烘暟缁撳悎鍦ㄤ竴璧凤紝鍋氫竴涓狵eccak杩愮畻锛岃幏寰楀垵濮嬬殑鍗曞悜鏁e垪鍊糓ix[0]锛128瀛楄妭銆傜劧鍚庯紝閫氳繃鍙﹀栦竴涓鍑芥暟锛屾槧灏勫埌DAG涓婏紝鑾峰彇涓涓鍊硷紝鍐嶄笌Mix[0]娣峰悎寰楀埌Mix[1]锛屽傛ゅ惊鐜64娆★紝寰楀埌Mix[64]锛128瀛楄妭銆
鎺ヤ笅鏉ョ粡杩囧悗澶勭悊杩囩▼锛屽緱鍒 mix final 鍊硷紝32瀛楄妭銆傦紙杩欎釜鍊煎湪鍓嶉潰涓や釜灏忚妭銆 009锛欸HOST鍗忚 銆嬨併 010锛氭惌寤烘祴璇曠綉缁 銆嬮兘鍑虹幇杩囷級
鍐嶇粡杩囪$畻锛屽緱鍑虹粨鏋溿傛妸瀹冨拰鐩鏍囧肩浉姣旇緝锛屽皬浜庡垯鎸栫熆鎴愬姛銆
闅惧害鍊煎ぇ锛岀洰鏍囧煎皬锛屽氨瓒婇毦锛堝墠闈㈤渶瑕佺殑 0 瓒婂氾級銆
杩欎釜杩囩▼涔熸槸鎸栫熆闅撅紝楠岃瘉瀹规槗銆
涓洪槻姝㈢熆鏈猴紝mix function鍑芥暟涔熸湁鏇存柊杩囥
闅惧害鍏寮忚佽句欢鎴鍥俱
鏍规嵁涓婁竴涓鍖哄潡鐨勯毦搴︼紝鏉ユ帹绠椾笅涓涓銆
浠庡叕寮忕湅鍑猴紝闅惧害鐢变笁閮ㄥ垎缁勬垚锛岄栧厛鏄涓婁竴鍖哄潡鐨勯毦搴︼紝鐒跺悗鏄绾挎ч儴鍒嗭紝鏈鍚庢槸闈炵嚎鎬ч儴鍒嗐
闈炵嚎鎬ч儴鍒嗕篃鍙闅惧害鐐稿脊锛屽湪杩囦簡涓涓鐗瑰畾鐨勬椂闂磋妭鐐瑰悗锛岄毦搴︽槸鎸囨暟涓婂崌銆傚傛よ捐★紝鍏惰儗鍚庣殑鐩鐨勬槸锛屽湪浠ュお鍧婄殑椤圭洰鍛ㄦ湡涓锛屽湪澶ч兘浼氱増鏈鍚庣殑涓嬩竴涓鐗堟湰涓锛岃佽浆鎹㈠叡璇嗭紝鐢盤OW鍙樹负POW銆丳OS娣峰悎鍨嬬殑鍗忚銆傚熀閲戜細鐨勬剰鎬濆彲鑳芥槸浣垮緱鎸栫熆鍙樺緱娌℃剰鎬濄
闅惧害鏇茬嚎鍥炬樉绀猴紝2017骞10鏈堬紝闅惧害鏈変竴涓澶х殑涓嬮檷锛屽栧姳涔熺敱5涓鍙樹负3涓銆
鏈鑺備富瑕佷粙缁嶄簡Ethash绠楁硶锛屼笉瓒充箣澶勶紝璇锋壒璇勬寚姝c
鍥藉唴eth鍗佸ぇ鐭挎睜鎺掑悕
浠ュお鍧婄殑鎸栫熆杩囩▼涓庢瘮鐗瑰竵鐨勫嚑涔庢槸涓鏍风殑銆侲TH閫氳繃鎸栫熆浜х敓锛屽钩鍧囨瘡15绉掍骇鐢1涓鍧楋紝鎸栫熆鐨勬椂鍊欙紝鐭垮伐浣跨敤璁$畻鏈哄幓璁$畻涓閬撳嚱鏁拌$畻棰樼殑绛旀堬紝鐩村埌鏈夌熆宸ヨ$畻鍒版g‘绛旀堝嵆瀹屾垚鍖哄潡鐨勬墦鍖呬俊鎭锛岃屼綔涓虹涓涓璁$畻鍑烘潵鐨勭熆宸ュ皢浼氬緱鍒3鏋欵TH鐨勫栧姳銆
濡傛灉鐭垮伐A鐜囧厛绠楀嚭姝g‘鐨勭瓟妗堬紝閭d箞鐭垮伐A灏嗚幏寰椾互澶甯佷綔涓哄栧姳锛屽苟鍦ㄥ叏缃戝箍鎾鍛婅瘔鎵鏈夌熆宸モ滄垜宸茬粡鎶婄瓟妗堢畻鍑烘潵浜嗏濆苟璁╂墍鏈夊湪绛旈樼殑鐭垮伐浠杩涜岄獙璇佸苟鏇存柊姝g‘绛旀堛傚傛灉鐭垮伐B绠楀嚭姝g‘绛旀堬紝閭d箞鍏朵粬鐭垮伐灏嗕細鍋滄㈠綋鍓嶇殑瑙i樿繃绋嬶紝璁板綍姝g‘绛旀堬紝骞跺紑濮嬪仛涓嬩竴閬撻橈紝鐩村埌绠楀嚭姝g‘绛旀堬紝骞朵竴鐩撮噸澶嶆よ繃绋嬨
鐭垮伐鍦ㄨ繖涓娓告垙涓寰堥毦浣滃紛銆備粬浠鏄娌℃硶浼瑁呭伐浣滃張寰楀嚭姝g‘绛旀堛傝繖灏辨槸涓轰粈涔堣繖涓瑙i樼殑杩囩▼琚绉颁负鈥滃伐浣滈噺璇佹槑鈥濓紙POW锛夈
瑙i樼殑杩囩▼澶х害姣12-15绉掞紝鐭垮伐灏变細鎸栧嚭涓涓鍖哄潡銆傚傛灉鐭垮伐鎸栫熆鐨勯熷害杩囧揩鎴栬呰繃鎱锛岀畻娉曚細鑷鍔ㄨ皟鏁撮樼洰鐨勯毦搴︼紝鎶婂嚭鍧楅熷害淇濇寔鍦13绉掑乏鍙炽
鐭垮伐鑾峰彇杩欎簺ETH甯佹槸鏈夐殢鏈烘х殑锛屾寲鐭跨殑鏀剁泭鍙栧喅浜庢姇鍏ョ殑绠楀姏锛屽氨鐩稿綋浣犵殑璁$畻鏈鸿秺澶氾紝浣犵瓟棰樼殑姝g‘鐨勬傜巼涔熷氨瓒婇珮锛屾洿瀹规槗鑾峰緱鍖哄潡濂栧姳銆
1銆 浠ュお鍧
瀹冩槸鍏ㄧ悆棰嗗厛鐨勬瘮鐗瑰竵鏁版嵁鏈嶅姟鎻愪緵鍟嗗拰鐭挎睜鍜岄挶鍖呰В鍐虫柟妗堟彁渚涘晢銆備粠2015骞村紑濮嬶紝鍥㈤槦浠庡尯鍧楁祻瑙堝櫒绛夎屼笟鍩虹璁炬柦鍏ユ墜锛岃嚧鍔涗簬鏋勫缓鍚勪釜瀛愰嗗煙鐨勬柊鏍囧噯銆傚搧鐗屽彲浠ュ湪閽卞寘銆佺熆姹犮佽屾儏銆佽祫璁绛夐嗗煙鐪嬪埌銆
2銆丗2Pool
F2Pool 鏄涓鍥芥渶澶х殑姣旂壒甯佸拰鑾辩壒甯佹寲鐭跨郴缁熺熆姹犱箣涓銆傛暟鎹鏄剧ず锛岄奔姹犵洰鍓嶆槸鍏ㄧ悆绗浜屽ぇ鐭挎睜锛屼粎娆′簬铓傝殎鐭挎睜銆
3銆侀挶鍗
纰ч煶鎴愮珛浜2017骞11鏈堬紝鐢卞師鏍稿績鍥㈤槦鎵撻犮傚洟闃熺殑浜у搧鍜屾妧鏈杈撳嚭鐜板湪鏈嶅姟浜庡叏缃戝ぇ閮ㄥ垎姣旂壒甯佺畻鍔涳紱涓ゅ勾鍐呮墦閫犱簡澶氫釜浜у搧锛岃法瓒婂尯鍧楅摼娴忚堝櫒銆佺熆姹犮侀挶鍖呯瓑澶氫釜鍨傜洿棰嗗煙銆傜ⅶ闊崇熆姹犳槸涓涓涓撲笟鐨勭熆姹狅紝鏀鎸佹墍鏈変富娴佸竵绉嶇殑鎸栫熆銆傜洰鍓嶆敮鎸佺殑甯佺嶅寘鎷锛欱TC銆丅CH銆丅SV銆乑EC銆丩TC銆丒TH銆丏CR銆丏ASH銆乆MR銆
4銆佺伀甯佺熆姹
鐏甯佺熆姹犳槸鍏ㄧ悆棣栦釜闆嗘暟瀛楄祫浜ф寲鎺樹笌浜ゆ槗浜庝竴浣撶殑鐭挎睜骞冲彴銆傚畠閲囩敤鍩轰簬POW鎸栫熆鏈哄埗鐨勫叏鏂板垎閰嶆ā鍨婩PPS銆傚競鍦轰笂澶ч儴鍒嗙熆姹犻噰鐢ㄤ紶缁熺殑PPS缁撶畻鍜屽垎閰嶆ā寮忋傜浉姣斾箣涓嬶紝鐏甯佺殑FPPS妯″紡闄嶄綆浜嗙熆宸ョ殑鎵撳寘璐癸紝姣忎釜鐭垮伐鍙浠ュ炲姞5%宸﹀彸鐨勫埄娑︺傜伀甯佺熆姹犻氳繃杩欎竴涓炬帾锛屽皢鍏朵笌鍏朵粬鐭挎睜鍖哄垎寮鏉ワ紝鍚稿紩鐭垮伐鍏ラ┗銆
5銆佽殏铓佺熆姹
铓傝殎鐭挎睜鏄疊itTaiwan鍒╃敤澶ч噺璧勬簮寮鍙戠殑楂樻晥鏁板瓧璐у竵鐭挎睜銆傝嚧鍔涗簬涓虹熆宸ユ彁渚涙洿鍙嬪ソ鐨勭晫闈銆佹洿瀹屽杽鐨勫姛鑳姐佹洿澶氱殑浣跨敤鏂归潰銆佹洿涓板帤閫忔槑鐨勬敹鐩娿傝揣甯佺殑鍙戝睍鍋氬嚭鏇村氳础鐚銆傝殏铓佺熆姹犳槸涓涓楂樻晥鐨勬暟瀛楄揣甯佺熆姹狅紝鑷村姏浜庝负鐭垮伐鎻愪緵鏇村弸濂界殑鐣岄潰銆佹洿濂界殑鍔熻兘銆佹洿渚挎嵎鐨勪娇鐢ㄥ拰鏇翠赴鍘氶忔槑鐨勬敹鐩娿傝殏铓佺熆姹犱负澶氱嶆暟瀛楄揣甯佹彁渚涙瘮鐗瑰竵銆佽幈鐗瑰竵銆佷互澶鍧婃寲鐭挎湇鍔★紝鏀鎸丳PS銆丳PLNS銆丼OLO绛夊氱嶆敮浠樻柟寮忋
6銆佸井姣旂壒
寰姣旂壒鏄涓瀹朵笓涓氱殑鏁板瓧璐у竵鎶鏈鏈嶅姟鍟嗐傚叾鏈嶅姟鑼冨洿鍖呮嫭鏁板瓧璐у竵浜ゆ槗骞冲彴銆佹暟瀛楄揣甯佺熆姹犮佷簯鎸栫熆鍚堢害銆傛垚绔嬩簬2016骞5鏈堬紝鍚屽勾6鏈堜笂绾挎瘮鐗瑰竵鐭挎睜锛11鏈堜笂绾夸簯鎸栫熆浜у搧銆 2017骞3鏈堬紝寰姣旂壒鑾峰緱鐢盉itTaiwan棰嗘姇鐨2000涓囧厓A杞铻嶈祫锛屼互鎷撳睍浜ゆ槗鎵涓氬姟銆 6鏈堬紝寰姣旂壒鍗冲皢涓婄嚎鏁板瓧璐у竵浜ゆ槗骞冲彴銆
7銆58COIN绗浜岀被鏄鍏朵粬鐭挎睜锛屽備互澶鍧婄熆姹犮丼park鐭挎睜锛涚涓夌被鏄浜ゆ槗鎵鐭挎睜锛屽傜伀甯佺熆姹犮丱K鐭挎睜銆佸竵瀹夌熆姹犮傚竵瀹変綔涓烘柊涓栫晫鐨勨滄暟瀛楃粡娴庢搷浣滅郴缁熲濓紝鍦ㄦ暟瀛楄祫浜т氦鏄撴祦閫氶嗗煙锛屽湪鍖哄潡閾惧競鍦烘暀鑲查嗗煙锛屽湪鍘讳腑蹇冨寲娴侀氭帰绱㈤嗗煙锛岃祫浜ф祦閫氬钩鍙板湪浜戣$畻棰嗗煙锛屽湪甯傚満鍜屾暟瀛楄祫浜уぇ鏁版嵁棰嗗煙锛屽湪閲戣瀺琛嶇敓鍝侀嗗煙锛岀瓑鐢熸佺郴缁燂紝閮藉彇寰椾簡寰堝ソ鐨勬垚缁╋紝涔熷垱閫犱簡鍏ㄧ悆褰卞搷鍔涖傚綋鐒讹紝瀵逛簬鍖哄潡閾惧拰鏁板瓧缁忔祹棰嗗煙鐨勫疄浣撶粡娴庯紝鈥滀簯绠楀姏骞冲彴鈥濓紝鍗崇熆姹狅紝甯佸畨涔熷湪鏋佺煭鐨勬椂闂村唴鍒涢犱簡鍙︿竴绉嶁滃晢涓氬唴娑碘濄
9銆丱KEXPool
鍦ㄥ叕甯冪殑鏁版嵁涓锛孫KExPool浠2019骞10鏈堢殑甯傚満浠介濈害0%杩呴熷彂灞曚负甯傚満浠介濈鍏澶х殑鐭挎睜銆備絾鏄锛屽湪绠楀姏瓒嬪娍鏇茬嚎涓婏紝OKExPool鍦2020骞1鏈堢畻鍔涘嚭鐜板ぇ骞呬笅婊戙傛湁甯傚満浜哄+瀵筆ANews琛ㄧず锛屾帹娴婳KExPool绠楀姏蹇閫熶笅婊戠殑鍘熷洜鍙鑳芥槸鍔犲叆浜嗘洿鍔犱腑蹇冨寲鐨勫皬鐭垮満锛岀洰鍓嶈繕缂轰箯鎶曡祫鑰呭姞鍏ョ畻鍔涚粨鏋勩
铏界劧浜ゆ槗鎵鏅閬嶆槸鐭挎睜棰嗗煙鐨勬柊浜猴紝浣嗕氦鏄撴墍鎸佹湁鐨勭熆姹犱笟鍔$浉瀵逛簬浼犵粺鍏鍙镐粛鏈変竴瀹氱殑澶╃劧浼樺娍銆
10銆丅TCTOP
Lybit鐭挎睜缁忚繃澶氬勾鐨勭ǔ瀹氳繍琛岋紝鏈鍒濇槸涓涓鍏ㄧ綉绠楀姏鏈澶х殑绉佹湁鐭挎睜銆傜幇闈㈠悜甯傚満浠ュお甯侊紝璇氶個鎵鏈夌熆宸ュ垎浜鍏舵妧鏈甯︽潵鐨勬寲鐭挎敹鐩娿傚叏鏂板崌绾ф敼鐗堢殑涔愭瘮鐗圭熆姹犵郴缁熸洿鍔犺创鍚堝㈡埛闇姹傦紝鍐呭规洿涓板瘜锛屾搷浣滄洿绠鍗曘
⑶ 如何使用STM32CubeMX配置ETH
具体配置过程:
1、打开STM32CubeMX,并选择好相应的芯片。文中的芯片为STM32F207VCT6,选择后如下图:
2、配置RCC时钟、ETH、PA8以及使能LWIP;
由于此处我们的开发板硬件上为RMII方式,因此选择ETH-RMII,若有同志的开发板为MII方式,请参考MII的配置方法,此处只针对RMII;
RCC选择外部时钟源,另外勾选MCO1,软件会自动将PA8配置为MCO1模式,该引脚对于RMII方式很重要,用于为PHY芯片提供50MHz时钟;
使能LWIP;
3、时钟树的相关配置,必须保证MCO1输出为50Mhz,如果这个频率不对会导致PHY芯片无法工作;
我这里因为芯片为207VCT6,为了使MCO1输出为50Mhz,做了PLL倍频参数的一些调整,总体如下:(同志们配置时可根据自己的芯片灵活配置,但需保证MCO1的输出为50Mhz)
4、ETH、LWIP、RCC相关参数设置;
至此,比较重要的都在前面了,但是还有一点仍需要注意,即PA8引脚输出速度,几次不成功都是因为这个引脚没注意。
后续的参数设置可以根据同志们自己的需求分别设置,这里给出我的设置供参考;
ETH参数保持默认,但中断勾选一下;
LWIP参数设置如下:(因为我这里是配置UDP服务器,IP选择静态分配)
5、生成工程,做最后的函数修改;
给生成的工程添加UDP服务器的初始化以及端口绑定等相关函数;
我这里直接将之前的官方例程中的UDP服务器文件加进来,如下:
之后将.c文件添加到用户程序,主函数添加Udp的.h头文件;如下:(udp文件的具体内容在后面给出)
6、主函数还需要添加一下几个函数,在这里不对函数作用及实现原理讲解,仅做添加说明。
附:udp_echoserver相关文件内容(该文件为官方的示例程序,版权归官方,此处做转载)
udp_echoserver.c的内容如下:
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "lwip/pbuf.h"
#include "lwip/udp.h"
#include "lwip/tcp.h"
#include <string.h>
#include <stdio.h>
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#define UDP_SERVER_PORT 7 /* define the UDP local connection port */
#define UDP_CLIENT_PORT 7 /* define the UDP remote connection port */
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
void udp_echoserver_receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port);
/* Private functions ---------------------------------------------------------*/
/**
* @brief Initialize the server application.
* @param None
* @retval None
*/
void udp_echoserver_init(void)
{
struct udp_pcb *upcb;
err_t err;
/* Create a new UDP control block */
upcb = udp_new();
if (upcb)
{
/* Bind the upcb to the UDP_PORT port */
/* Using IP_ADDR_ANY allow the upcb to be used by any local interface */
err = udp_bind(upcb, IP_ADDR_ANY, UDP_SERVER_PORT);
if(err == ERR_OK)
{
/* Set a receive callback for the upcb */
udp_recv(upcb, udp_echoserver_receive_callback, NULL);
}
}
}
/**
* @brief This function is called when an UDP datagrm has been received on the port UDP_PORT.
* @param arg user supplied argument (udp_pcb.recv_arg)
* @param pcb the udp_pcb which received data
* @param p the packet buffer that was received
* @param addr the remote IP address from which the packet was received
* @param port the remote port from which the packet was received
* @retval None
*/
void udp_echoserver_receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t *addr, u16_t port)
{
/* Connect to the remote client */
udp_connect(upcb, addr, UDP_CLIENT_PORT);
/* Tell the client that we have accepted it */
udp_send(upcb, p);
/* free the UDP connection, so we can accept new clients */
udp_disconnect(upcb);
/* Free the p buffer */
pbuf_free(p);
}
udp_echoserver.h的内容如下:
#ifndef __ECHO_H__
#define __ECHO_H__
void udp_echoserver_init(void);
#endif /* __MINIMAL_ECHO_H */
7、至此,所有的工作完成,编译工程,下载至开发板。由于udp_echoserver中绑定的端口号为7,这里我们通过测试工具测试网络的功能
⑷ ZYNQ+linux网口调试笔记(3)PL-ETH
在ZYNQ上使用gigE Vision协议的网络接口相机。
第一步:调通PS侧网口GEM0(Xilinx BSP默认配好)。
第二步:调通PS侧网口GEM1(见前一篇文档:开发笔记(1))。
第三步:调通PL侧网口(本文阐述)。
第四步:在PL侧网口上验证Jumbo Frame特性,并在应用层适配gigE Vision协议。
根据《xapp1082》可知,PL侧的PHY支持1000Base-X和SGMII两种配置,这两种配置对应两种不同的PHY引脚接口(连接到MAC)。而我们的hdf文件使用的是1000Base-X的配置。
关于网口的Linux驱动,我们在官网找到一份资料: Xilinx Wiki - Zynq PL Ethernet 。资料很长,我们只看与我们相关的2.4.1 PL Ethernet BSP installation for 1000Base-X”这一章节就可以了。
首先导入FPGA设计同事提供的hdf文件:
在弹出的图形界面里,进入Subsystem AUTO Hardware Settings——Ethernet Settings——Primary Ethernet,确认可以看到PL侧网络设备axi_ethernet_0,说明hdf文件里已包含了必要的网口硬件信息:
上图中被选中的网口将成为Linux上的设备eth0。这里我们默认选择ps7_ethernet_0,即使用GEM0作为首选网口。
启用Xilinx AXI Ethernet驱动
进入Device Drivers -- Network device support – 选中Xilinx AXI Ethernet(以及Xilinx Ethernet GEM,这是PS侧网口的驱动)
进入Networking support – 选中 Random ethaddr if unset
进入Device Drivers -- Network device support -- PHY Device support and infrastructure – 启用Drivers for xilinx PHYs
进入~~~~Device Drivers -- DMA Engine Support -– 禁用~~~~Xilinx AXI DMAS Engine~~~ (对应的配置项名为 ~~ CONFIG_XILINX_DMA ~~~)
注意: Xilinx Wiki里对设备树节点的引用有误(&axi_ethernet),导致编译报错,应改为&axi_ethernet_0。
注:PL-ETH驱动所在路径:<project>/build/tmp/work-shared/plnx_arm/kernel-source/drivers/net/ethernet/xilinx/xilinx_axienet_main.c和xilinx_axienet_mdio.c。对应的内核配置项为CONFIG_NET_VENDOR_XILINX和CONFIG_XILINX_AXI_EMAC。
启用ethtool和tcpmp(调试用,非必须):
然后将生成的BOOT.BIN和image.ub拷贝到SD卡根目录下,将SD卡插入板子上,上电运行。
上电后,使用ifconfig eth1查看网口信息,观察MAC地址与设置的一致,且ifconfig eth1 192.168.1.11 up没有报错。
测试网络通路:ping PC是通的。说明网口工作正常。
Linux下eth1(即PL-ETH)的MAC地址有误
问题描述:
开机打印:
注意:
MAC地址是错的,驱动里解析出的是GEM0的MAC地址。
试验发现,即使在system-user.dtsi里不写local-mac-address,也照样解析出的是GEM0的MAC。
而将system-user.dtsi里的local-mac-address改名为pl-mac-address,并将驱动里解析的字符串也对应更改为pl-mac-address,则可以正确解析出来:
Passing MAC address to kernel via Device Tree Blob and U-Boot:
http://zedboard.org/content/passing-mac-address-kernel-device-tree-blob
通过更改u-boot环境变量和设备树,为每个板子设置一个独特的MAC地址:
https://www.xilinx.com/support/answers/53476.html
U-Boot里的环境变量ethaddr会覆盖掉设备树里pl-eth的local-mac-addr字段,从而影响Linux启动后的网卡MAC地址;
但U-Boot里的环境变量ipaddr不会对Linux启动后的配置产生任何影响。因为设备树里根本就没有关于IP地址的配置。
phy-mode怎么会是sgmii?查了下官方的提供的BSP里,也是“sgmii”。说明这个没问题。具体原因不清楚。
@TODO: 设备树里的中断号的顺序如何影响功能?
为何读出来的IRQ号不对呢?这是因为这里读到的不是硬件的中断号,而是经过系统映射之后的软件IRQ number。两者不具有线性关系。
关于中断号的疑问:
Linux上的网口eth0、eth1的顺序,似乎是按照phy地址从小到大来排布的。
Xilinx xapp1082-zynq-eth.pdf (v5.0) July 16, 2018
https://www.xilinx.com/support/documentation/application_notes/xapp1082-zynq-eth.pdf
Xilinx Wiki - Zynq PL Ethernet:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841633/Zynq+PL+Ethernet
Xilinx Wiki - Linux Drivers:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841873/Linux+Drivers
Xilinx Wiki - Linux Drivers - Macb Driver:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841740/Macb+Driver
Xilinx Wiki - Zynq Ethernet Performance:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841743/Zynq+Ethernet+Performance
查到关于Jumbo frame MTU的定义,当前值为9000,可否改大一些?
驱动源码里关于jumbo frame的说明:
设置MTU为9000,发现ping包最大长度只能设为ping 192.168.1.10 -s 1472
https://lore.kernel.org/patchwork/patch/939535/
【完】
⑸ eth挖矿是什么原理
凡是涉及到币,就一定离不开挖矿。以太坊网络中,想要获得以太坊,也要通过挖矿来实现。说到挖矿,就一定离不开共识机制。
不知道大家还记得比特币的共识机制是什么吗?比特币的共识机制是 PoW (这是英文 Proof of Work 的缩写,意思是“工作量证明机制”)。简单来说,就是多劳多得,你付出的计算工作越高,那么你就越有可能第一个找到正确的哈希值,就越有可能得到比特币奖励。
但是,比特币的PoW存在着一定的缺陷,就是它处理交易的速度太慢,矿工们需要不断地通过计算来碰撞哈希值,这是劳民伤财且效率低下的。对区块链知识有涉猎的朋友们应该看到这样一种说法:
以太坊为了弥补比特币的不足,提出了新的共识机制,名叫 PoS(这是英文的缩写,意思是“权益证明”,也有翻译成“股权证明”的)。
PoS 简单来讲,其实就跟它的字面意思一样:权益嘛,股权嘛,你持有的币越多相当于你的股权越多,你的权益越高。
以太坊的PoS就是说:你持币越多,你持有币的时间越久,你的计算难度就会降低,挖矿会容易一些。
在以太坊最初的设定中,以太坊希望能够通过阶段性的升级,在前期依旧采用PoW来构建一个相对稳定的系统,之后逐渐采用 PoW+PoS,最后完全过渡到 PoS。所以,说以太坊的共识机制是PoS,没错,但是PoS只是以太坊发布之初的一个计划或者说目标,目前以太坊还没有过渡到 PoS,以太坊采用的共识机制仍是 PoW,就是比特币那个 PoW,但是又和比特币的PoW稍稍不同。
这里的信息量有点大,
第一个信息点是:以太坊目前采用的共识机制也是PoW,但是和比特币的PoW稍稍不同。那么,和比特币的PoW到底有什么不同呢:简单来说,就是以太坊挖矿难度可以调节,比特币挖矿难度不能调节。就好比咱们高考,因为各个省份的教学情况、生源人数都不一样,所以高考分为全国卷和各省自主命题。
以太坊说我赞成这样分地区出题,比特币说:不行,必须全国同一卷,大家难度都一样!
通俗解释,就是,比特币是利用计算机算力做大量的哈希碰撞,列举出各种可能性,来找到一个正确哈希值。而以太坊系统呢,它有一个特殊的公式用来计算之后的每个块的难度。如果某个区块比前一个区块验证的更快,以太坊协议就会增加区块的难度。通过调整区块难度,就可以调整验证区块所需的时间。
以太坊协议规定,难度的动态调整方式是使全网创建新区块的时间间隔为 15 秒,网络用 15 秒时间创建区块链,这样一来,因为时间太快,系统的同步性就大大提升,恶意参与者很难在如此短的时间发动51%(也就是半数以上)的算力去修改历史数据。
第二个信息点是:以太坊最初的设定中,希望通过阶段性升级来最终实现由 PoW 向
PoS过渡的。
时间追溯到 2014 年,在以太坊发布之初,团队宣布将项目的发布分为四个阶段,即 Froniter(前沿)、Homestead(家园)、Metropolis(大都会)和 Serenity(宁静)。前三个阶段共识机制采用 PoW(工作量证明机制),第四个阶段切换到 PoS(权益证明机制)。
2015年7月30号,以太坊第一个阶段“前沿”正式发布,这个阶段只适用于开发者使用,开发人员可于在以太坊网络上编写智能合约和去中心化应用程序 DAPP,矿工开始进入以太坊网络维护网络安全并挖矿得到以太币。前沿版本类似于测试版,证明以太坊网络到底是不是可靠的。
2016年3月14日,以太坊进入到第二个阶段“家园”,这一阶段,以太坊提供了钱包功能,让普通用户也可以方便体验和使用以太坊。其他方面没有什么明显的技术提升,只是表明以太坊网络已经可以平稳运行。
2017 年 9 月,以太坊已经进行到第三个阶段“大都会”。“大都会”由拜占庭和君士坦丁堡两次升级组成,这个阶段的的目标是希望能够引入 PoW 和 PoS 的混合链模式,为 PoW向PoS的顺滑过渡做准备。最近比较热门的“以太坊君士坦丁堡升级”升级的就是这个,在君士坦丁堡升级中呢,以太坊将对底层协议和算法做一些改变,来为实现 PoW 和
PoS奠定良好的基础。
以太坊挖矿会得到对多少奖励呢?赢得区块创建竞争成功的矿工会得到这么几项收入:
1、 静态奖励,5个以太坊;
2、 区块内所花费的燃料成本,也就是Gas,这部分我们上一期内容讲过;
3、 作为区块组成部分,包含“叔区块”的额外奖励,叔就是叔叔的叔,每个叔区块可以得到挖矿报酬的1/32作为奖励,也就是5乘以1/32,等于0.15625 个以太坊。这里我们简单解释一下“叔区块”,“叔区块”这个概念是以太坊提出来的,为什么要引进叔块的概念?这还要从比特币说起。在比特币协议中,最长的链被认为是绝对的正确。如果一个块不是最长链的一部分,那么它被称为是“孤块”。一个孤立的块是一个块,它也是合法的,但是可能发现的稍晚,或者是网络传输稍慢,而没有能成为最长的链的一部分。在比特币中,孤块没有意义,随后将被抛弃掉,发现这个孤块的矿工也拿不到采矿相关的奖励。
但是,以太坊不认为孤块是没有价值的,以太坊系统也会给与发现孤块的矿工回报。在以太坊中,孤块被称为“叔块”(uncle block),它们可以为主链的安全作出贡献。 以太坊十几秒的出块间隔太快了,会降低安全性,通过鼓励引用叔块,使引用主链获得更多的安全保证(因为孤块本身也是合法的) ,而且,支付报酬给叔块,还能激发矿工积极挖矿,积极引用叔块,所以,以太坊认为,它是有价值的。
⑹ linux 测试主机是否有可能未全速运行的网络接口
linux一般使用ifconfig命令修改linux主机的ip、网关或子网掩码。
1.命令格式:
ifconfig [网络设备] [参数]
2.命令功能:
ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
3.命令参数:
up 启动指定网络设备/网卡。
down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
arp 设置指定网卡是否支持ARP协议。
-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包
-a 显示全部接口信息
-s 显示摘要信息(类似于 netstat -i)
add 给指定网卡配置IPv6地址
del 删除指定网卡的IPv6地址
配置网卡最大的传输单元
mtu 设置网卡的最大传输单元 (bytes)
netmask 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
tunel 建立隧道
dstaddr 设定一个远端地址,建立点对点通信
-broadcast 为指定网卡设置广播协议
-pointtopoint 为网卡设置点对点通讯协议
multicast 为网卡设置组播标志
address 为网卡设置IPv4地址
txqueuelen 为网卡设置传输列队的长度
4.使用实例:
实例1:显示网络设备信息(激活状态的)
命令:
ifconfig
输出:
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:BF:26:20
inet addr:192.168.120.204 Bcast:192.168.120.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0
TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:596390239 (568.7 MiB) TX bytes:2886956 (2.7 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:68 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2856 (2.7 KiB) TX bytes:2856 (2.7 KiB)
说明:
eth0 表示第一块网卡, 其中 HWaddr 表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是 00:50:56:BF:26:20
inet addr 用来表示网卡的IP地址,此网卡的 IP地址是 192.168.120.204,广播地址, Bcast:192.168.120.255,掩码地址Mask:255.255.255.0
lo 是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。
第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)
第二行:网卡的IP地址、子网、掩码
第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节
第四、五行:接收、发送数据包情况统计
第七行:接收、发送数据字节数统计信息。
实例2:启动关闭指定网卡
命令:
ifconfig eth0 up
ifconfig eth0 down
输出:
说明:
ifconfig eth0 up 为启动网卡eth0 ;ifconfig eth0 down 为关闭网卡eth0。ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡。
实例3:为网卡配置和删除IPv6地址
命令:
ifconfig eth0 add 33ffe:3240:800:1005::2/64
ifconfig eth0 del 33ffe:3240:800:1005::2/64
输出:
说明:
ifconfig eth0 add 33ffe:3240:800:1005::2/64 为网卡eth0配置IPv6地址;
ifconfig eth0 add 33ffe:3240:800:1005::2/64 为网卡eth0删除IPv6地址;
练习的时候,ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡。
实例4:用ifconfig修改MAC地址
命令:
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
输出:
[root@localhost ~]# ifconfig eth0 down //关闭网卡
[root@localhost ~]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
[root@localhost ~]# ifconfig eth0 up //启动网卡
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:AA:BB:CC:DD:EE
inet addr:192.168.120.204 Bcast:192.168.120.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0
TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:596390239 (568.7 MiB) TX bytes:2886956 (2.7 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:68 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2856 (2.7 KiB) TX bytes:2856 (2.7 KiB)
[root@localhost ~]# ifconfig eth0 hw ether 00:50:56:BF:26:20 //关闭网卡并修改MAC地址
[root@localhost ~]# ifconfig eth0 up //启动网卡
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:BF:26:20
inet addr:192.168.120.204 Bcast:192.168.120.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0
TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:596390239 (568.7 MiB) TX bytes:2886956 (2.7 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:68 errors:0 dropped:0 overruns:0 frame:0
TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2856 (2.7 KiB) TX bytes:2856 (2.7 KiB)
说明:
实例5:配置IP地址
命令:
输出:
[root@localhost ~]# ifconfig eth0 192.168.120.56
[root@localhost ~]# ifconfig eth0 192.168.120.56 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255
说明:
ifconfig eth0 192.168.120.56
给eth0网卡配置IP地:192.168.120.56
ifconfig eth0 192.168.120.56 netmask 255.255.255.0
给eth0网卡配置IP地址:192.168.120.56 ,并加上子掩码:255.255.255.0
ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255
/给eth0网卡配置IP地址:192.168.120.56,加上子掩码:255.255.255.0,加上个广播地址: 192.168.120.255
实例6:启用和关闭ARP协议
命令:
ifconfig eth0 arp
ifconfig eth0 -arp
输出:
[root@localhost ~]# ifconfig eth0 arp
[root@localhost ~]# ifconfig eth0 -arp
说明:
ifconfig eth0 arp 开启网卡eth0 的arp协议;
ifconfig eth0 -arp 关闭网卡eth0 的arp协议;
实例7:设置最大传输单元
命令:
ifconfig eth0 mtu 1500
输出:
[root@localhost ~]# ifconfig eth0 mtu 1480
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:BF:26:1F
inet addr:192.168.120.203 Bcast:192.168.120.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1480 Metric:1
RX packets:8712395 errors:0 dropped:0 overruns:0 frame:0
TX packets:36631 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:597062089 (569.4 MiB) TX bytes:2643973 (2.5 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:9973 errors:0 dropped:0 overruns:0 frame:0
TX packets:9973 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:518096 (505.9 KiB) TX bytes:518096 (505.9 KiB)
[root@localhost ~]# ifconfig eth0 mtu 1500
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:56:BF:26:1F
inet addr:192.168.120.203 Bcast:192.168.120.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8712548 errors:0 dropped:0 overruns:0 frame:0
TX packets:36685 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:597072333 (569.4 MiB) TX bytes:2650581 (2.5 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:9973 errors:0 dropped:0 overruns:0 frame:0
TX packets:9973 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:518096 (505.9 KiB) TX bytes:518096 (505.9 KiB)
[root@localhost ~]#
说明:
设置能通过的最大数据包大小为 1500 bytes
备注:用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
⑺ 以太坊推出首个公共测试网用于全面升级至权益证明(PoS)
12月21日消息,以太坊核心开发人员 Tim Beiko 在Twitter上宣布,以太坊将推出第一个公开测试网 Kintsugi Merge Testnet,用于全面升级到权益证明(PoS)。Tim Beiko 还表示,尽管客户端开发和 UX 会不断改进,但鼓励用户尽早开始使用 Kintsugi,以便在合并后的环境中熟悉以太坊网络。重大升级将由存入 32 ETH 的抵押者执行。目前,230 万个测试网 ETH 已经由相对 7.2万名验证者存入新网络,这表明社区已经为“加密领域最大的升级”做好了充分准备。 此外,根据报告,应用程序开发人员不会有太大变化,仅与共识层或执行层交互的工具也基本不受影响。
什么是权益证明?
权益证明是一种区块链网络达成共识的共识机制。
这将要求用户抵押他们的以太币从而成为网络中合法的验证者。 验证者有着与矿工在 工作量证明(pow)中相同的职责:将交易排序和创建新的区块,以便让所有的节点就网路状态达成一致。
权益证明相较于工作量证明系统有许多改进:
1、提高能效——您不需要大量能源去挖掘区块
2、门槛降低,硬件要求减少——您不需要优秀的硬件从而获得建立新区块的机会
3、更强的去中心化——权益证明可以在网络中提供更多的节点。
4、更有力的支持分片链——一个得以扩展以太坊网络的关键升级
权益证明、权益质押和验证者
权益证明是一种用于激励验证者接受更多质押的基本机制。 就以太币而言,用户需要质押 32ETH 来获得作为验证者的资格。 验证者被随机选择去创建区块,并且负责检查和确认那些不是由他们创造的区块。 一个用户的权益也被用于激励良好的验证者行为的一种方式。 例如,用户可能会因为离线(验证失败)而损失一部分权益, 或因故意勾结而损失他们的全部权益。
以太坊权益证明是如何运作的?
与工作量证明不同的是,验证者不需要使用大量的计算能力,因为它们是随机选择的,相互间没有竞争。 他们不需要开采区块,他们只需要在被选中的时候创建区块并且在没有被选中的时候验证他人提交的区块。 此验证被称为证明。 你可以认为证明是说“这个块在我看来没问题”。 验证者因提出新区块和证明他们已经看到的区块而获得奖励。
如果你为恶意区块提供证明,你就会失去你的股权。
权益证明和安全性
权益证明中仍然存在 51% 攻击的威胁,但对于攻击者来说攻击成本越来越高。 要发起 51% 攻击,你需要掌控 51% 以上的以太币股权。 这不仅仅是一笔巨款,还很有可能导致以太币贬值。 破坏你的货币价值的大部分权益是非常容易的。 当然也有更强有力的激励措施来保持网络的安全和 健康 。
信标链上的权益消减、踢出和其余惩罚、协调来防治其他恶意行为。 验证者还将负责记录这些事件。
优缺点
优点
权益质押让您更容易运行一个节点。 这不需要在硬件或能源方面进行巨额投资。 如果你没有足够的 ETH 来进行质押,你可以加入质押池。
权益质押更加去中心化。 它允许更多人参与,并且更多的节点不意味着像挖矿一样增加百分比的回报。
权益质押可以保证安全的防护。 分片链允许以太坊同时创建多个区块,增加交易输送量。 将以太坊网络置于工作量证明系统内,这会降低网络被攻击所需的算力。
缺点
与工作量证明相比,权益证明仍处于起步阶段,并且没有经过实际应用的测试。