快問快答,以太坊技術崗位面試終極必備題

2020-12-04 區塊鏈兄弟

區塊鏈兄弟社區,區塊鏈技術專業問答先行者,中國區塊鏈技術愛好者聚集地

作者:Vitanov

來源:Medium

原文連結:https://medium.com/@i6mi6/the-ultimate-collection-of-ethereum-solidity-and-smart-contracts-interview-questions-ef610d250012

著權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

本文約5400字+,閱讀(觀看)需要31分鐘

問:以太坊的價值標誌是什麼?

答:(ETH)

問:魏和ETH有什麼區別?

答:魏是一個面額,像美分到美元或便士到磅。1 ETH =10魏

問:以太坊的平均阻擋時間是多少?

答:14秒

問:以太坊的平均街區大小是多少?

答:大約2KB。

問:以太坊是否支持腳本?如果是這樣,什麼類型的腳本?

答:是的。它支持智能合同

問:你如何得到ETH?

答:有幾種方法:

1.成為礦工

2.交易其他貨幣

3.乙太網水龍頭,如https://faucet.metamask.io

4.從他人那裡接收Ethers

問:ETH從哪裡來?

答:在2014年預售中首次創建了6000萬個。另外,在開採塊時創建了ETH。

問:什麼是節點?

答:一個節點本質上是一臺連接到網絡的計算機,它處理事務。

問:你熟悉多少個以太坊網絡?

答:有三種類型的網絡 - 實時網絡(主),測試網絡(如Ropsten和Rinkeby)和專用網絡。

問:什麼是與網絡互動的一些方式?

答:您可以使用電子錢包或DApp

問:你可以「隱藏」一項交易嗎?

答:不可以。所有交易對每個人都是可見的。

問:交易記錄在哪裡?

答:在公共帳本上。

問:這些網絡的ID是什麼?

答:Live(id = 1),Ropsten(id = 3),Rinkeby(id = 4),Private(由開發人員分配)

問:所以我可以在林克比中挖掘一些Ethers並將它們轉移到Live網絡,對吧?

答:不,你不能在網絡之間傳輸乙太網。

問:你為什麼要有私人網絡?

答:有很多原因,但主要是因為數據隱私,分布式資料庫,權限控制和測試。

問:您如何輕鬆查看有關交易和區塊的詳細信息?

答:使用像etherscan.io或live.ether.camp這樣的區塊鏈探索器

問:私有網絡怎麼樣?

答:您可以使用開源瀏覽器客戶端(如https://github.com/etherparty/explorer)

問:區塊鏈的共識是什麼?

答:遵循特定協議(如以太坊)驗證交易(創建塊)的過程。

問:區塊鏈中兩種常用的共識模型是什麼?

答:工作證明和利益證明。

問:以簡單的方式解釋工作證明。

答:這實際上是礦工為了生成工作證明和驗證交易而必須解決的難題。

問:以簡單的方式解釋股權證明。

答:該塊的創建者是通過財富和年齡(股份)隨機選擇的。它不是計算密集型的。

問:以太坊使用什麼共識模式?

答:截至2018年初,它使用工作證明,但它將切換到股權證明。

問:你怎麼能用Ethers?

答:使用錢包或geth cli

問:什麼是用來籤署交易?

答:用戶的私鑰。

問:丟失私鑰後你能恢復你的以太坊帳戶嗎?

答:可以,你可以用你的12字助記符。

問:有哪些方法可以連接到節點?

答:IPC-RPC,JSON-RPC和WS-RPC。

問:那麼Geth是什麼?

答:Geth是以太坊cli客戶端。

問:連接到geth客戶端的默認方式是什麼?

答:默認情況下啟用IPC-RPC,每個其他RPC都被禁用。

問:你知道什麼geth API?

答:Admin,eth,web3,礦工,網絡,個人,調試和txpool。

問:您可以使用哪些RPC通過網絡連接到geth客戶端?

答:您可以使用JSON-RPC和WS-RPC通過網絡連接到geth客戶端。IPC-RPC只能連接到同一臺機器上的geth客戶端。

問:如果你通過選項 - rpc哪些RPC被啟用?

答:JSON-RPC。

問:哪些RPC API默認啟用?

答:eth,web3和net。

問:如何為JSON RPC啟用管理API?

答:通過使用選項 - rpcapi

問:選項 - datadir有什麼作用?

答:它指定了區塊鏈的存儲位置。

問:什麼是geth的「快速」同步,為什麼它更快?

答:與其一次處理整個區塊鏈一個連結並重播所有發生的事務,快速同步會將事務處理回執與區塊一起下載並提取整個最近的狀態資料庫。

問:測試網是做什麼的?

答:它將客戶端連接到Ropsten網絡。

問:啟動geth客戶端會在屏幕上轉儲大量輸出。你會如何減少噪音?

答:通過將詳細程度設置為較低的數字(默認值為3)

問:如何使用IPC-RPC將一個geth客戶端連接到另一個客戶端?

答:首先啟動一個geth客戶端,複製它的管道位置,然後使用同一個datadir啟動另一個geth客戶端並傳遞 - 附加到管道位置。

問:如何將自定義javascript文件加載到geth控制臺中?

答:通過傳遞 - 預加載和文件的路徑。

問:geth客戶帳戶存儲在哪裡?

答:在密鑰庫目錄中。

問:為了進行交易,您與帳戶有什麼關係?

答:您必須解鎖該帳戶 - 通過傳遞帳戶地址或索引解鎖。您也可以指定一個 - 密碼文件,其中所有密碼都駐留在每個帳戶中。

問:你提到了一些有關索引的內容。什麼決定了帳戶指數?

答:您添加帳戶的順序。

問:是否可以使用geth挖掘?

答:是的,通過 - 我的選擇。

問:什麼是「etherbase」?

答:這是接收採礦獎勵的帳戶,它是索引0的帳戶。

問:那麼什麼是智能合約?

答:這是用多種語言編寫的計算機代碼。智能合約存在於網絡上。他們執行規則並執行行動,由參與者在這些合同中進行談判。

問:智能合約可以寫入哪些語言?

答:Solidity,這是最常用的語言,Serpent和Lisp Like Language

問:智能合同用例的例子?

答:賣方 - 買方的場景,買方在智能合約中存入資金,賣方看到存款並發送貨物,買方收到貨物並放行付款。

問:什麼是Metamask?

答:Metamask是一款可以幫助您輕鬆在瀏覽器中與以太坊網絡進行互動的工具

問:Metamask使用哪個節點?

答:它使用infura.io

問:Metamask不支持什麼?

答:採礦和合同部署。

問:執行合同是否免費?

答:不,調用合約方法是一個交易。

問:訪問智能合同狀態是否免費?

答:是的,查詢狀態不是交易。

問:誰執行合同?

答:礦工。

問:為什麼在智能合約上調用方法會花費金錢?

答:一些方法不會修改合約的狀態,也沒有其他邏輯,除了返回一個值以外,都是免費的。

除了將ETH作為付款之外,調用改變國家花費的方法也是因為它們需要gas來執行。

問:更確切地說為什麼會有氣體?

答:由於礦工在他們的機器上執行合同代碼,他們必須通過執行調用者請求的代碼來承擔他們的成本。

問:交易處理時,gas價格是否確定?

答:是,不是。gas價格越高,交易開採的可能性就越大。儘管如此,天然氣價格並不能保證更快的交易處理。

問:交易中的gas使用量取決於什麼?

答:這取決於存儲量,指令的類型和數量(可選代碼)。每個EVM可選代碼都有一個固定數量的氣體。

問:交易費是如何計算的?

答:使用的氣體*gas價格(由主叫方指定)

問:如果智能合同的執行成本低於指定的gas,用戶是否得到退款?

答:是的

問:如果智能合同的執行成本高於指定的天然氣,會發生什麼情況?

答:用戶沒有得到退款,並且一旦所有的氣體用完並且合同沒有改變,執行就會停止。

問:誰支付智能合同調用?

答:調用合同的用戶。

問:節點運行智能合同代碼的是什麼?

答:EVM - 以太坊虛擬機。EVM遵循作為以太坊協議一部分的EVM規範。EVM只是節點上的一個進程。

問:為了運行智能合同,EVM需要什麼?

答:它需要合約的字節碼,它是通過編譯Solidity等更高級別的語言生成的。

問:更高級別的EVM部分有哪些?

答:內存區域,堆棧和執行引擎。

問:什麼是混音?

答:開發,測試和部署合同的在線工具。快速構建和測試輕量級合同非常好,但不適合更複雜的合同。

問:在混音中,您可以連接哪些節點?

答:您可以使用Metamask,使用Geth中的本地節點以及Javascript VM中的模擬內存節點連接到公共節點。

問:什麼是DApp,為什麼它與普通應用程式不同?

答:應用程式通常由一個客戶端與一些集中資源(由一個組織擁有)通信組成。

有一個中間層連接到一個集中的數據層。如果集中數據層中的信息丟失,則無法恢復(輕鬆)。

DApp表示分散式應用程式。DApps通過智能合同與網絡進行交互。他們使用的數據駐留在合同實例中。

集中式數據可能比分散式更容易受到損害。

問:DApp的前端是否局限於任何技術/框架?

答:不可以。你可以使用任何你想要的東西,比如HTML,CSS,JS,Java,Python,這個名單還在繼續。

問:前端用於連接後端(智能合同)的是什麼?

答:Web3 API庫。

問:為了與來自DApp的合同進行交互,您需要什麼?

答:合同的ABI和字節碼。

問:ABI用於什麼?

答:ABI是DApps用於調用合同的合同的公共接口的描述。

問:什麼是字節碼?

答:每個節點上的EVM需要字節碼才能執行合同代碼。

問:為什麼要使用BigNumber庫?

答:因為Javascript不能正確處理大數字。

問:為什麼有必要始終檢查web3提供程序是否設置在Web DApp代碼的開頭?

答:因為Metamask注入它並用自己的覆蓋其他web3。

問:為什麼要使用版本web3 js 1.x而不是0.2xx?

答:主要是因為它的異步調用使用承諾而不是回調,這在javascript世界中是首選。

問:如何在web3 1.x中列出帳戶?

答:web3.eth.getAccounts。

問:.call和.send有什麼區別?

答:.send發送交易並支付費用,而.call查詢合同狀態。

問:發送一個這樣的以太「.send({value:1})」好嗎?

答:不,你派1個。交易總是與wei一起工作。

問:所以為了發送1個乙醚,我必須將這個值減10?

答:您可以使用util方法web3.utils.toWei(1,'ether')

問:調用「.send()」時需要指定什麼?

答:您必須指定「發件人」是發件人地址。其他一切都是可選的。

問:web3.eth.sendTransaction()的唯一功能是將ethers發送到特定的地址,這是否正確?

答:不,您也可以調用合約方法。

問:您是否知道以太坊的可擴展性解決方案?

答:2層協議。可能的解決方案是狀態通道和血漿。

問:Solidity是靜態的還是動態的?

答:它是靜態類型的,這意味著類型在編譯時已知。

問:與Solidity中的Java「Class」相當的功能是什麼?

答:這是合同。

問:什麼是合同實例?

答:合同的一個實例是區塊鏈上已部署的合同。

問:給我一些Java和Solidity之間的區別。

答:Solidity支持多重繼承,但不支持重載。

問:你必須在Solidity文件中首先指定什麼?

答:Solidity編譯器的版本,指定為^ 0.4.8。這是必要的,因為它可以防止在與其他版本編譯時引入的不兼容性錯誤。

問:合同包含什麼?

答:它主要由存儲變量,函數和事件組成。

問:那裡有哪些類型的功能?

答:有一個構造函數,回退函數,修改合同狀態的常量函數和函數。

問:如果我將多個合約定義放入單個Solidity文件中,我會得到什麼錯誤?

答:將多個合約定義放入單個Solidity文件是完全正確的。

問:兩種合同可以進行交互的方式有哪些?

答:合同可以調用,創建和繼承其他合同。

問:當您嘗試使用多個合同部署文件時會發生什麼?

答:編譯器只會部署該文件中的最後一個合同,而所有其他合同都將被忽略。

問:如果我有一個龐大的項目,我需要將所有相關合同保存到一個文件中嗎?

答:您可以使用導入語句導入文件,

導入「./MyOtherContracts.sol」;

問:我只能導入本地文件嗎?

答:您還可以使用HTTP(甚至可以從Github)導入文件,

導入「 http://github.com/ <owner> / <回購> / <文件路徑>」

問:EVM的內存分成了哪些部分?

答:它分為存儲,內存和Calldata

問:解釋存儲

答:將其視為資料庫。每個合同管理自己的存儲變量。它是一個鍵值數據存儲(256位鍵值)。就每次執行使用的氣體而言,讀取和寫入成本更高。

問:解釋記憶

答:這是一個臨時存儲。一旦執行結束,數據就會丟失。您可以像數組和結構一樣分配複雜的數據類型。

問:解釋卡爾達塔

答:它可以被認為是一個調用堆棧。它是臨時的,不可修改的,它存儲EVM執行數據。

問:哪些變量分別存儲在存儲區和內存區?

答:狀態變量和局部變量(它們是對狀態變量的引用)存儲在存儲器中。函數參數位於內存區域中。

問:看看下面的代碼,並解釋代碼的哪一部分對應於哪個內存區域:

合同MyContract {

//第1部分

uint count;

uint [] totalPoints;

函數localVars(){

//第2部分

uint [] localArr;

//第3部分

uint [] memory memoryArr;

// part 4

uint [] pointer = totalPoints;

}

}

答:

第1部分 - 存儲。

第2部分 - 存儲(陣列大小指向相同的位置counter)

第3部分 - 內存。

第4部分 - 參考存儲。

文章發布只為分享區塊鏈技術內容,版權歸原作者所有,觀點僅代表作者本人,絕不代表區塊鏈兄弟贊同其觀點或證實其描述。

相關焦點

  • 快問快答:區塊鏈崗位面試終極必備題
    區塊鏈兄弟,區塊鏈技術專業問答先行者,中國區塊鏈技術愛好者聚集地文章來源:程式設計師大咖原文連結:http://t.cn/R1o2Imj著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。本文約4700字+,閱讀(觀看)需要27分鐘1.問:你認為區塊鏈技術中的區塊意味著什麼?
  • 宋芸樺在三十題不間斷快問快答中說了什麼 一句話惹眾怒
    宋芸樺在三十題不間斷快問快答中說了什麼 一句話惹眾怒時間:2018-08-03 16:12   來源:今日頭條   責任編輯:沫朵 川北在線核心提示:原標題:宋芸樺在三十題不間斷快問快答中說了什麼 一句話惹眾怒 《西虹市首富》女主角宋芸樺被扒出一段快問快答的視頻,最喜歡國家是臺灣,隨後,宋芸樺發表道歉微博,稱自己是中國人
  • 抖音快問快答題目是什麼 快問快答答案分享
    抖音的小套路真的很多啊,還有很多測試男朋友的方法,真的是挺有趣的,比如說最近抖音上很火的我和嗚啦啦誰可愛,這個是快問快答裡面的一個問題。那抖音快問快答題目是什麼?下面我們一起來看看快問快答題目以及答案吧!
  • 「快問快答」張力軍
    在網際網路之光博覽會的「快兔出行」展臺,記者一眼認出了全球最大的中文專業內容生產視頻平臺——「第一視頻」董事局主席張力軍。  「第一視頻」與「快兔出行」,似乎風馬牛不相及呀?面對記者詫異的目光,張力軍笑著解釋,「快兔出行」是「第一視頻」旗下的品牌,是「移動網際網路+電動汽車+單車的分時租賃平臺」。「低碳環保的電動汽車,方便快捷的單車出行,真正實現零排放、無汙染的綠色出行,緩解交通壓力。」
  • 胡歌挑戰50題快問快答 爆出不少內心小秘密
    收過最不可思議的禮物是… 胡歌資料圖 據臺灣媒體3月16日報導,胡歌以《琅琊榜》迷倒許多粉絲,日前接受《GQ》50題快問快答挑戰如此莫測高深的境界讓網友根本意會不了什麼意思,至於被問到上一通電話打給誰,他毫不猶豫回是媽媽,加上之前宣稱單身,和富家千金林曉的戀情似乎已成為過去式。 胡歌50問全部內容 GQ:對剛認識的人會用什麼作為開場白? 胡歌:哎呀我好像在哪裡見到過你。 GQ:剛才一小時中遇到最有趣的事是什麼?
  • 音快問快答題目及答案分享
    最近不少用戶都在刷抖音時都看到快問快答的視頻,據說這個視頻是女朋友問男朋友的套路,在這裡男朋友要是答不上來也就慘了喲,不少男票也紛紛表示自己被套牢了,針對這一事件,頂庫葉子就給大家匯總了這些題目和答案,幫助男票們跳出這個圈套。
  • 以太坊是什麼?10%是龐氏騙局,網友:以太坊第二層項目將成主流
    以太坊是什麼?10%是龐氏騙局,網友:以太坊第二層項目將成主流2018有爭議的是什麼?是區塊鏈,最大爭議則是以太坊!有人認為區塊鏈最具有顛覆的科技之一,有人認為區塊鏈是割韭菜、詐騙等,其中最大爭議就是以太坊,有人認為以太坊10%是龐氏騙局,今天說說是區塊鏈的以太坊。一以太坊發展以太坊誕生於2013年7月,短短的幾年就以他獨特的性能,成為區塊鏈的主流,以太坊主要是為開發人員提供了最為優質的資源和工具。
  • 抖音快問快答題目大全(附答案、視頻)
    抖音現在是最火的短視頻,沒有之一,抖音也成為了很多人每天必看的短視頻,總感覺看不膩,抖音還出現了一些快問快答的題目,貌似很火,一起隨小編來看看吧!  抖音快問快答視頻:點擊這裡  1、如果我們分手了你第一件事做什麼?我們不可能分手!
  • 深度| 以太坊「大都會」終極指南:現在正在發生什麼?!
    為讓大家更好理解 Metropolis 技術升級的細節,翻譯此文,歡迎指正。作為以太坊的裡程碑事件,大都會終於要來到我們身邊了。以太坊開發團隊計劃於9月18日在測試網絡上測試"大都會"(Metropolis),測試至少3周時間。如果測試正常,"大都會"將被部署在主網絡。所以,升級到"大都會"階段的最早時間是10月9日(譯者註:實際部署時間已經推遲)。
  • 以太坊外無Defi?EOS:我有
    然而,可供枚舉的 MakerDAO、Dharma、dydx、Compound 等 Defi 項目,均建立在以太坊上。經歷 2018 年如火如荼的發展之後,如今已在以太坊上衍生出包括借貸、預測、信託等去中心化金融生態。其中 MakerDAO 的市場份額佔比最大。其他公鏈也在覬覦這一領域,比如以太坊最大的對手EOS。
  • 以太坊的「黑暗森林」:混沌與生機
    以太坊的每一層都是黑暗森林在接下來的內容中,我會將黑暗森林的隱喻擴展到以太坊的技術、社區和治理層。正如任何人都可以監控交易池並從中獲利一樣,套利者也可以在每一層獲取最終利益,無論他們是否考慮到社區的長遠利益。舉些例子:技術層:部署到主網,添加狀態到鏈,監控交易池以便先發制人。社區層:參與社區、推特熱點,向Gitcoin Grants捐贈。
  • 拼多多2020屆數據分析面試題合集
    特別問了會不會SQL,我說學過資料庫課程但是實踐寫SQL比較少,然後問學過哪些課程。兩題SQL,第一題表連接,第二題輸出每周都有銷量的商家,我的where條件考慮不全,面試官提醒了我,但我還是沒答出他想要的答案。
  • 快問快答!澳大利亞的國花是什麼?
    快問快答!澳大利亞的國花是什麼?是的啦,就是這個小東西,它叫做 金合歡。講真,腦洞大如我,一開始被問到這個問題的時候,我也只能想到「袋鼠花」……雖然並不知道有沒有這種花以及它要長成什麼樣子……然後真的被我找到了,這傢伙真的叫袋鼠花!
  • 馬雲玩快問快答:這一幕太經典
    日前,@老闆聯播分享了一個來自 2010 年的視頻,2010 年馬雲作客優米網《在路上—馬雲對話 80 後》,現場他與年輕觀眾上玩起快問快答," 快問快答 " 中,現場有觀眾提問了眾多視頻中,現場有觀眾問馬雲 " 您對自己的外表哪一點不滿意 ",馬雲則機智的回答稱,年輕的時候自己挺不滿意的,但現在自己都挺滿意。還有觀眾問馬雲 " 你最喜歡女性身上什麼樣的品質 ",馬雲則回答 " 樂觀的看待我 "。
  • 馬雲玩快問快答:全是成功的標準答案
    日前,@老闆聯播分享了一個來自2010年的視頻,2010年馬雲作客優米網《在路上—馬雲對話80後》,現場他與年輕觀眾上玩起快問快答,「快問快答」中,現場有觀眾提問了眾多「角度刁鑽」的問題,比如最敬佩的人是誰?最珍惜的財產是什麼?不滿意自己的是什麼?而幽默機智的回答讓人嘆服,有網友表示稱「全是成功的標準答案。」
  • 遠古大物,快問快答,1951年全國高考數學題(第一部分)
    考題分為兩個部分,第一部分為基礎的20道小題,第二部分為4道大題。下面我們一起快問快答,速推第一部分吧!答:OB們,三角形輕輕地問,你是否還記得我的心?重心(中線交點);外心(外接圓圓心,三邊垂直平分線交點);內心(內接圓圓心,內角平分線交點);垂心(垂線交點)。
  • 以太坊2.0合約存入ETH突破200萬枚|以太坊2.0|以太坊|波卡|filecoin
    本周技術周刊包含以太坊、波卡、Filecoin、BSN網絡的技術類新聞。以太坊網絡Sigma Prime發布以太坊2.0客戶端Lighthouse v1.0.5版本據官方消息,以太坊2.0客戶端Lighthouse開發團隊Sigma Prime 發布Lighthouse v1.0.5版本。
  • 以太坊2.0來了,其他公鏈該怎麼辦?
    就現有公鏈來說,速度比較快的例如EOS算是一個典型的代表,在EOS網絡繁忙的時候,根據設計,用戶仍然面臨著資源不夠用的情況,往往發送一筆交易就要佔有大約一百元以上的EOS資源,這也是EOS這個系統被人詬病的地方,很多時候可能會形成一個死循環。
  • 當面試官問到「你的優點/缺點是什麼」,該如何完美地回答?
    「你的優點/缺點是什麼」,是HR在面試過程中出現概率特別高的問題。我之前在獵頭公司負責人才招聘的工作,私底下跟同事交流的時候,紛紛表示對這種套路題的不屑,「肯定沒有做好準備的HR才會問這種問題。」在了解公司對於招聘崗位人才要求的基礎上,考慮自己是否匹配這個位置,並且在面試中有意的去展現你匹配這些素質,這也是面試的最終目標。你的優點是什麼在面試時碰到說說你的優點這類問題,乍一看是個送分題,但很多同學回答得不如人意。
  • 以太坊命懸一線?
    而以太坊的特點就是高度去中心化,通過自治的以太坊社區,依靠早期的大量資源聚集了優秀的DAPP開發者,通過社區來維護項目和持續推進技術的延展。但是相對於EOS的21個超級節點的DPOS機制,雖然遭受偽中心化的趨勢,但是在安全性和高效性上都要領先於以太坊的POS機制。