五分鐘精通區塊鏈:以太坊系統核心總結筆記

(注意:以太坊計劃最終從Solidity轉移到Viper。)

我們來看看一個基本的Solidity合約示例。

讓我們運行一個簡單的while循環:

contract BasicIterator{address creator; // reserve one "address"-type spotuint8[10] integers; // reserve a chunk of storage for 10 8-bit unsigned integers in an arrayfunction BasicIterator(){creator = msg.sender;uint8 x = 0;//Section 1: Assigning valueswhile(x < integers.length) {integers[x] = x; x++;} }function getSum() constant returns (uint) {uint8 sum = 0;uint8 x = 0;//Section 2: Adding the integers in an array.while(x < integers.length) {sum = sum + integers[x];x++;}return sum;}// Section 3: Killing the contractfunction kill(){if (msg.sender == creator){suicide(creator);}}}

我們來分析一下代碼。為了便於理解,我們已經將代碼分成三部分。

第1部分:分配值

在第一步中,我們將填充一個名為“integers”的數組,其中包含10個8位無符號整數。我們這樣做的方式是通過一個while循環。我們來看看while循環內發生了什麼。

while(x < integers.length) {integers[x] = x;x++;}

記住,我們已經給整數x賦了一個“0”的值。while循環從0到整數。長度。Integers.length是一個返回數組最大容量的函數。因此,如果我們確定數組將有10個整數,則arrayname.length將返回值10.在上面的循環中,x的值從0到9(<10),並將其自身的值分配給整數數組也是如此。因此,在循環結束時,整數將具有以下值:

0,1,2,3,4,5,6,7,8,9。

第2部分:添加數組內容

在getSum()函數內部,我們將添加數組本身的內容。方法是通過重複上面的while循環並使用變量“sum”來添加數組的內容。

第3部分:中止合同

該功能會中止合同並將合同中的剩餘資金返還給合同創建者。

當被問及創造 Solidity後面的靈感和動機是什麼時,Gavin Woods博士這樣說道:

“它[Solidity]旨在成為開發合同的複雜工具,最終可以為開發人員和用戶提供有關代碼所做工作的完整信息。為了解決這個問題,我設計了一種合約友好型文檔格式的NatSpec。我還提出了一個正式的校對語言子集(尚未實施),以便最大限度地提供可以進行的正確性保證。

我將事件作為第一類公民引入Solidity語言中,以便為類似於函數調用的LOG提供很好的抽象。對此的啟示來自Qt元對象系統的“signals”。

Christian R.和我一起想到的一個後來的功能是功能調節器; 它允許作為函數簽名的一部分放置的屬性對視函數體進行一些修改。作為一種非常具有說明性的表達手段,這是一種很好地融入到面向契約的編程領域的習慣用法。“,如果對於智能合約開發工具和環境感興趣,也可以瀏覽:區塊鏈開發:最佳的智能合約開發工具總結

什麼是 以太(Ether)和 Gas?

以太幣(Ether)是生態系統中的主要代幣(token)。激勵參與者執行以太相關的智能合同項目。gas是滿足特定合同所有需求所需的’燃料’量,它用來衡量一個行為或者一系列行為有多少“工作量”。。

當某人提交智能合同時,它具有預定的 gas 價值。當合同執行時,合同的每一步都需要執行一定數量的gas。所以:gas是計算費用的方式。不過,這些費用仍然是以ether計算。類似於,我開車需要消耗多少天然氣(gas),但是最終結算時用人民幣(以太幣)來結算。

這可能導致兩種情況:

• 所需的gas超過了設定的極限。如果是這種情況,那麼合同狀態將恢復到原始狀態,並且所有的gas都用完了。

• 所需的gas少於設定的限值。如果是這樣的話,那麼合同就完成了,剩餘的gas被交給合同制定者。

以下是平均gas價格的圖表。

五分鐘精通區塊鏈:以太坊系統核心總結筆記

Gas 是以太坊的命脈,就好比石油是工業系統的命脈一般。

以太坊的所有交易均由礦工確認。基本上,他們必須手動將每一筆交易放入他們為交易進行驗證而開採的塊中。作為交換他們的服務,他們收取一定數量的交易費用。

通常情況下,高額gas費用的智能合約是優先考慮的,因為礦工有機會在那裡收取更高的費用。與比特幣相比,收取的費用仍然很有名。

這張圖表比較了比特幣的交易費用與以太坊。

五分鐘精通區塊鏈:以太坊系統核心總結筆記

圖片來源:Bitinfocharts

事實上,正如你所看到的,在這個0.01 Ether的交易中,只有0.00000000000002以太被收集為交易費用,這是<0.000001美元。

五分鐘精通區塊鏈:以太坊系統核心總結筆記

Dapps和ICO

以太坊最令人興奮的功能之一顯然是它為用戶創建自己的Dapps提供的平臺。

任何人,任何地點都可以創建自己的dAPP,並通過提供白皮書,通過ICO獲得資金!

這是以太坊最令人興奮和最危險的功能之一(事實上,很可能你已經看到了這些ICO最近瘋狂的圈錢)

由於某些企業重量級人物的支持和ICO的普及,以太坊已經得到廣泛採用。因此,以太坊網絡上的節點數目呈指數級增長。實際上,它是擁有最多節點的加密貨幣,因此最為分散。

最後:

目前很多區塊鏈項目和ICO相關大部分都衍生於以太坊,當然也有很多非常垃圾的圈錢項目,但是正如某人說過:技術無罪。不能因為一些不正常炒作而否定技術本身,我們班更應該關注的是如何使用技術來推動產業革命。


分享到:


相關文章: