如何驗(yàn)證以太坊智能合約的源代碼

為什么要驗(yàn)證代碼

以太坊平臺(tái)默認(rèn)是公開透明的戏蔑。以太坊區(qū)塊鏈的所有數(shù)據(jù)都是公開的,任何人都可以訪問年鸳。問題是以太坊上的所有合約代碼都是二進(jìn)制代碼省撑,很容易被以太坊虛擬機(jī)執(zhí)行赌蔑,但幾乎不可讀。雖然大多數(shù)開發(fā)人員使用Solidity語言編寫智能合約竟秫,但部署的不是Solidity娃惯,而是二進(jìn)制代碼。

值得思考得問題是:如果沒有人能夠證明它正在做它所做的事情肥败,那么部署智能合約的重點(diǎn)是什么趾浅?你會(huì)把錢委托給未經(jīng)驗(yàn)證的代碼嗎?不可能馒稍。

在哪里驗(yàn)證

合約驗(yàn)證有助于在使用智能合約的客戶和部署合同的項(xiàng)目方之間建立信任皿哨。Etherscan區(qū)塊鏈已經(jīng)實(shí)現(xiàn)了一個(gè)在線工具來幫助開發(fā)人員驗(yàn)證他們的代碼。驗(yàn)證是將Solidity源代碼連接到智能合約的已部署二進(jìn)制代碼的過程筷黔。該工具檢查Solidity代碼的編譯版本是否與二進(jìn)制代碼匹配往史。合約驗(yàn)證后,任何人都可以查看源代碼佛舱,審核并審計(jì)。

Etherscan區(qū)塊鏈瀏覽器的驗(yàn)證和發(fā)布工具

如何驗(yàn)證你的代碼

在我們解釋如何驗(yàn)證你的代碼之前挨决,如果你使用我們的發(fā)幣工具部署了一些ERC-20代幣,你不需要做任何事情; 合約是自動(dòng)驗(yàn)證的请祖。這是使用我們的工具部署的在Etherscan區(qū)塊鏈瀏覽器上的示例代幣Solidity代碼

本指南適用于使用Truffle和Solidity進(jìn)行合約開發(fā)的開發(fā)人員脖祈。

1.準(zhǔn)備一個(gè)flat Solidity文件

truffle-flattener?concats在Truffle下開發(fā)的具有所有依賴關(guān)系的文件肆捕。使用以下命令安裝它::?

npm install truffle-flattener -g?

使用truffle-flattener連接已部署契約的所有依賴項(xiàng)。示例代碼如下:?

truffle-flattener contracts/ERC20/YidaibiERC20Token.sol > FlatYidaibiERC20Token.sol?

應(yīng)創(chuàng)建一個(gè)名為FlatYidaibiERC20Token.sol的新文件盖高,其中包含層次結(jié)構(gòu)中使用的所有可靠性合約的內(nèi)容慎陵。

2.驗(yàn)證和發(fā)布工具

本節(jié)將指導(dǎo)您完成Etherscan區(qū)塊鏈瀏覽器的驗(yàn)證和發(fā)布工具眼虱,并幫助你填寫其頁面上的所有選項(xiàng)。我們將一步一步走席纽。

2.1 合約地址和構(gòu)造函數(shù)參數(shù)ABI編碼

在Etherscan區(qū)塊鏈瀏覽器上找到你的合同捏悬,然后導(dǎo)航到代碼選項(xiàng)卡,單擊“驗(yàn)證并發(fā)布”鏈接润梯。Etherscan區(qū)塊鏈瀏覽器將自動(dòng)填充一些表單選項(xiàng)过牙,因此你不必填下(合同地址和構(gòu)造函數(shù)參數(shù)ABI編碼)。

2.2 合約名稱

接下來纺铭,你將使用solidity文件中的合約名稱填寫合約名稱(例如寇钉,來自YidaibiERC20Token.sol,名稱為YidaibiERC20Token)舶赔。

2.3 編譯器

你使用的Solidity編譯器版本可以使用以下命令查看:?

truffle version?

你會(huì)得到這樣的東西:?

Truffle v4.1.14 (core: 4.1.14)?

Solidity v0.4.24 (solc-js)


從下拉列表中找到您的編譯器版本扫倡,使用最短的提交版本,而不是nightly(例如v0.4.24 + commite57f0147)竟纳。

2.4 優(yōu)化

要檢查是否啟用了優(yōu)化镊辕,請?jiān)陧?xiàng)目的根文件夾中打開truffle.js配置文件,然后查找名為solc的對象蚁袭,如下所示:?

solc: {?

optimizer: {?

enabled: true,?

runs: 200?

}?

}


如果有這樣的對象征懈,你可以看到啟用優(yōu)化,運(yùn)行200次揩悄。如果solc對象不存在卖哎,則禁用優(yōu)化。

2.5 合約代碼

在選項(xiàng)中復(fù)制/粘貼flattened文件(FlatYidaibiERC20Token.sol)的內(nèi)容删性。

2.6 完成

點(diǎn)擊“驗(yàn)證并發(fā)布”按鈕亏娜,等待幾秒鐘以驗(yàn)證合同!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蹬挺,隨后出現(xiàn)的幾起案子维贺,更是在濱河造成了極大的恐慌,老刑警劉巖巴帮,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溯泣,死亡現(xiàn)場離奇詭異,居然都是意外死亡榕茧,警方通過查閱死者的電腦和手機(jī)垃沦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來用押,“玉大人肢簿,你說我怎么就攤上這事。” “怎么了池充?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵桩引,是天一觀的道長。 經(jīng)常有香客問我收夸,道長坑匠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任咱圆,我火速辦了婚禮笛辟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘序苏。我一直安慰自己手幢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布忱详。 她就那樣靜靜地躺著围来,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匈睁。 梳的紋絲不亂的頭發(fā)上监透,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機(jī)與錄音航唆,去河邊找鬼胀蛮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛糯钙,可吹牛的內(nèi)容都是我干的粪狼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼任岸,長吁一口氣:“原來是場噩夢啊……” “哼再榄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起享潜,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤困鸥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后剑按,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疾就,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年吕座,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了虐译。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吴趴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锣枝,我是刑警寧澤厢拭,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站撇叁,受9級特大地震影響供鸠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜陨闹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一楞捂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧趋厉,春花似錦寨闹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乡数,卻和暖如春椭蹄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背净赴。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工绳矩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人玖翅。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓翼馆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親烧栋。 傳聞我的和親對象是個(gè)殘疾皇子写妥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容