買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > FIL幣 > Info

ETU:一文讀懂什么是Soilidity:用于實現智能合約的高級編程語言-ODAILY_UIN

Author:

Time:1900/1/1 0:00:00

Gensler警告說:“我們甚至在加密市場上看到了中心化,這是建立在去中心化思想基礎上的。這個領域實際上在市場中間的中介機構中非常集中。因此,我們必須對那些集中度和潛在經濟租金已經或未來可能上升的領域保持警惕。”

Gensler要求交易所介入并詢問證券監管機構,他們是否不清楚加密貨幣或代幣是否可以被視為證券,并表示SEC可以在個案基礎上研究是否需要對特定項目進行豁免。(the block)[2022/10/25 16:37:40]

要獲得這些值,只需傳遞名稱:

getUserInfo("Vivek");//2625/05/1995

getuserInfo("Supu");//2401/09/1998

全局變量

這些變量可用于像msg.sender這樣的所有函數。我們所編寫的任何Solidity程序,都應該由所有者調用。發送者的地址存儲在msg.sender全局變量中。

require

require用于驗證這兩個語句,并據此做出決定。如果條件為真,則代碼成功運行,否則就拋出錯誤

韓國銀行界擬要求財政部對《外匯交易法》中外匯匯款時的銀行義務進行權威解釋:9月25日消息,韓國銀行界最近組成了“外匯匯款交易特別工作組”,正在討論要求企劃財政部對《外匯交易法》中外匯匯款時的銀行義務進行權威解釋,包括證明文件確認等。根據現行法律,銀行界和金融監督院對銀行的義務有不同的解釋。

此前報道,韓國金融監督院正在調查 6 月份在友利銀行和新韓銀行發現的異常大額外匯交易,部分與加密資產交易所有關。(news1)[2022/9/25 7:19:38]

functionsayHi(stringmemoryname)publicreturns(stringmemory){/Comparesif_nameequals“Vivek”Throwsanerrorandexitsifnottrue.Soliditydoesn’thavenativestringcomparison,sowecomparetheirkeccak256hashestoseeifthestringsareequaq/

require(keccak256(abi.encodePacked(name))==keccak256(abi.encodePacked(“Vivek”)));

//Ifit’strue,proceedwiththefunction:

return“Hi!”;

}

sayHi(“Vivek”)//executessuccessfully

sayHi(“Supu”)//throwsanerror

V神:以太坊不需要為Layer 1使用單一的ZK-EVM實現進行標準化:金色財經報道,以太坊創始人Vitalik Buterin發文解釋了“不同類型的ZK-EVM和類似ZK-EVM的項目,以及它們之間的權衡”。V神例舉了描述了多個EVM等價的不同“類型”的分類,以及嘗試實現每種類型的好處和成本。

V神總結稱,就我個人而言,我希望隨著時間的推移,通過ZK-EVM的改進和以太坊本身的改進相結合,使其對ZK-SNARK更加友好,一切都將成為Type1。在這樣的未來,我們將有多個ZK-EVM實現,它們既可以用于ZK匯總,也可以用于驗證以太坊鏈本身。

從理論上講,以太坊不需要為Layer1使用單一的ZK-EVM實現進行標準化;不同的客戶可以使用不同的證明,因此我們繼續從代碼冗余中受益。但是,要實現這樣的未來,還需要相當長的時間。與此同時,我們將在擴展以太坊和基于以太坊的ZK-rollup的不同路徑中看到許多創新。[2022/8/4 12:02:16]

因此,require對于在運行函數之前驗證某些條件必須為真非常有用。

繼承

有時候,與其制定一個非常長的合約,還不如將代碼邏輯拆分為多個合約來組織代碼。

contractAnimal{

functioncatchphrase()publicreturns(stringmemory){

return“Animal”;

}

}contractCatisAnimal{

functionanotherCatchphrase()publicreturns(stringmemory){

return“CatisanAnimal”;

}

}

import

將代碼拆分為多個文件,并使用import來使用另一個文件中的功能。

這通常是在Solidity項目中處理長代碼庫的方式。

存儲和內存

存儲是指永久存儲在區塊鏈上的變量。內存變量是臨時的,在對合約的外部函數調用之間會被刪除。可以把它想象成電腦的硬盤與內存。

與區塊鏈網絡中的其他合約交互

關于這一點,我將寫一篇單獨的文章。現在,保持簡短:

為了與其他合約交互,我們聲明了一個類似object的接口。我們創建了一個合約,并在里面聲明了一個函數,我們想要從另一個合約調用或使用它。函數只是骨架,它不包含主體。

contractGetNumber{

functiongetNum(uint_num)publicreturns(uint){

return_num;

}

假設有一個合約,我們想要使用上面的getNum函數。為此,我們將在項目中創建一個合約,并聲明一個getNum函數框架(沒有函數體)。

contractNumberInterface{

functiongetNum(uint_num)publicreturns(uint);

}

現在我們可以從NumberInterface合約中調用getNum函數。

在將合約部署到以太坊后,它就變成了不可變的,也就是說它不能被修改。部署到合約中的初始代碼將永久地停留在區塊鏈上。這就是安全性在Solidity中如此重要的原因之一。如果我們的合約代碼中有一個缺陷,就沒有辦法在以后修補它。必須告訴我們的用戶開始使用具有修復功能的不同智能合約地址。

函數修飾符

函數修飾符看起來就像函數,但是使用關鍵字修飾符而不是關鍵字函數。這些用于特殊情況,例如當您只希望您的所有者而不是所有人做某事時。

這有助于更新DApp的關鍵部分,同時防止其他用戶破壞我們的合約。我處理過的一個用例是——當我們想在執行任何用例之前驗證語句時。

gas

用戶支付gas費來在以太坊網絡上運行合約。gas以以太(以太坊上的貨幣)為單位計算。我們的函數的總gas成本等于它所有單獨操作的總gas成本。

更多關于存儲的內容

存儲內存被永久寫入到區塊鏈中。全世界成千上萬的節點需要將這些數據存儲在它們的硬盤上,并且隨著區塊鏈的增長,這些數據量也會隨著時間的推移而增長。所以這樣做是有代價的。

為了降低成本,我們希望避免將數據寫入存儲,除非絕對必要。有時,這涉及到看似低效的編程邏輯——比如每次調用函數時都要在內存中重新構建數組,而不是簡單地將該數組保存在全局存儲變量中以便快速查找。

因此,建議盡可能使用內存類型,這樣數據就不會永久存儲,從而節省成本。循環在Solidity中將比使用存儲更便宜。所以盡可能for循環中使用內存。這與Java、Python等語言中所做的完全相反,因為for循環的計算成本更高。

For循環

Syntax類似于Javascript。

for(uinti=1;i<=10;i++){//body}

應付修飾符

支付功能是使Solidity和以太坊如此酷的部分原因——它們是一種可以接收以太坊的特殊類型的功能。當我們在一個普通的web服務器上調用一個API函數時,我們不能在調用函數的同時發送美元——也不能發送比特幣。

但在以太坊中,因為貨幣(以太坊)、數據(交易有效載荷)和合約代碼本身都在以太坊上,所以我們可以同時調用一個函數并向合約支付費用。

這允許一些非常有趣的邏輯,比如為了執行一個函數,需要向合約支付一定的費用。

注意:

在以太坊中,當我們在合約上調用一個函數時,我們將其作為交易廣播到網絡上的一個或多個節點。節點在網絡上收集一些交易,試圖成為第一個解決計算密集型數學問題的“工作證明”,然后將這組交易連同他們的工作證明發布為一個塊到網絡的其余部分。

代幣

所以基本上,代幣只是一個合約,它記錄了誰擁有多少代幣,以及一些函數,以便這些用戶可以將他們的代幣轉移到其他地址。

assert與require的差異

Assert類似于require,如果為false則拋出錯誤。assert和require之間的區別是,當一個函數失敗時,require會退還用戶剩余的gas,而assert不會。

Metamask

這是Chrome和Firefox的瀏覽器擴展,允許用戶安全地管理他們的以太坊賬戶和私鑰,并使用這些賬戶與使用Web3.js的網站進行交互。

應用程序二進制接口

在部署的合約之后,它會在以太坊上得到一個固定的地址,在那里它將永遠存在。在以太坊網絡中部署智能合約后,還會生成一個ABI。基本上,它是以JSON格式表示的合約方法,告訴Web3.js如何以我們的合約能夠理解的方式格式化函數調用。

Web3Js

以太坊的JS前端庫被稱為web3.js。

Source:https://medium.com/coinmonks/learn-all-about-solidity-ethereum-45d709c4de77

Tags:INTETUUIN以太坊Artificial Intelligence Technology NetworkCetus幣可以投資嗎QUIN幣以太坊官網公告

FIL幣
SHI:SHIB市值躍進前十,Meme幣會再次崛起嗎-ODAILY_shib幣最新消息熱議

撰文:Footprint分析師Zoni(Zoni@footprint.network) 日期:2021年11月 數據來源:DashboardforMemecoins自今年10月28日SHIB的市.

1900/1/1 0:00:00
WOR:World Mobile項目周報(12.27—1.2)-ODAILY_JUNO

2021年12月28日,前谷歌Loon(氣艇互聯網企業)成員、WorldMobile(世界移動)合伙人亞歷克斯·呂布克(AlexLuebke)出席WorldMobile(世界移動)討論會.

1900/1/1 0:00:00
加密貨幣:加密證券:資本市場上的顛覆性創新-ODAILY_CHA

密碼安全是電子安全的一種特殊情況,不構成中央登記安全。與加密貨幣和證券代幣等數字資產相比,其保管需要獲得加密貨幣保管業務的許可.

1900/1/1 0:00:00
COIN:Coinbase收到“威爾斯通知”的含義 美國打擊加密借貸產品-ODAILY_OIN

吳說作者|談叔 本期編輯|ColinWu1.Coinbase收到來自SEC的“宣戰”本月,Coinbase的CEO和聯合創始人BranArmstrong發了一系列的推.

1900/1/1 0:00:00
ADA:DAOrayaki |NFT 四個新興應用領域-ODAILY_VitaDAO

NFT,概述: 由于非同質代幣在2020年末和2021年初迅速成為主流,大多數人將NFT與像素化的Twitter頭像、曲線和巖石JPEG聯系起來。最成功和最著名的NFT項目創造了數字藝術市場.

1900/1/1 0:00:00
加密貨幣:AAX進軍全球NFT市場,于香港金融科技周首發5件NFT藝術品-ODAILY_FRANK

NFT藝術品歷史首次于香港最大型金融科技博覽會亮相創新舉措進一步提升該交易平臺國際競爭力香港,2021年11月3日—全球首家倫敦證券交易所集團技術驅動的加密貨幣交易所AAX今日宣布正式涉足全球N.

1900/1/1 0:00:00
ads