發布以太坊智能合約
㈠ 以太坊的智能合約
智能合約是運行在計算機裡面的,用於保證讓參與方執行承諾的代碼,般情況下,普通合約上記錄了甲方與乙方各方面的關系條款,並通常是通過法律強制執行或保護的,而「智能合約」則是用密碼或密鑰來執行關系。以更加直接的角度來理解的話,即「智能合約」的程序內容將同-開始大家一起設定好的那樣百分百執行,並且零差錯。
舉個例子,以太坊用戶可以使用智能合約在特定日期向朋友發送10個以太幣。在這種情況下,用戶可以操作創建一個合約,然後將程序推人該合約中進行特殊計算,以便它能夠執行所需的命令。而以太坊就是專門把精力集中在這件事上的這么一個平台。
比特幣是第一個支持「智能契約」的資源幣種,因為網路的價值在於把價值或數據從一個點或人轉移到另一個點或人身上。節點網路只在滿足某些條件時才會進行驗證,但是,比特幣僅限於貨幣用例。相反,以大坊取代了比特幣那種帶有不小限制性的編程語言,取而代之的是一種允許開發人員編寫自己程序的語言。以太坊允許開發人員編寫他們自己的「智能契約」,即「自主代理」或「自治代理」,正如ETH白皮書所稱的那樣。該編程語言是「圖靈完備」語言,這意味著它支持一組更廣泛的計算指令。智能合約能做些什麼呢?
1.「多簽名」賬戶功能,只有在一定比例的人同意時才能使用資金。這個功能經常用在與眾籌或募捐類似的活動中。
2.管理用戶之間所簽訂的協議。例如,一方從另一方購買保險服務3.為其他合同提供實用程序。
4.存儲有關應用程序的信息,如「域注冊信息」或「會員信息記錄」。概念有時候比較晦澀,我們舉一個募捐的智能合約的例子來幫助理解:假設我們想向全網用戶發起募捐,那就可以先定義一個智能賬戶,它有三個狀態:當前募捐總量,捐款目標和被捐贈人的地址,然後給它定義兩個函數:接收募捐函數和捐款函數。
接收募捐函數每次收到發過來的轉賬請求,先核對下發送者是否有足夠多的錢(EVM會提供發送請求者的地址,程序可以通過地址獲取到該人當前的區塊鏈財務狀況),然後每次募捐麗數調用時,都會比較下當前募捐總量跟捐款目標的比較,如果超過目標,就把當前收到的捐款全部發送到指定的被捐款人地址,否則的話,就只更新當前募捐總量狀態值。
捐款函數將所有捐款發送到保存的被捐贈人地址,並且將當前捐款總量清零。每一個想要募捐的人,用自己的ETH地址向該智能賬戶發起一筆轉賬,並且指明了要調用接受其募捐函數。於是我們就有一個募捐智能合約了,人們可以往裡面捐款,達到限額後錢會自動發送到指定賬戶,全世界的礦工都在為這個合約進行計算和擔保,不再需要人去盯著看有沒有被挪用,這就是智能合約的魅力所在。
㈡ 在線發布智能合約https://remix.ethereum.org的簡單使用
Remix IDE是開發以太坊智能合約的在線IDE工具,部署簡單的智能合約非常方便
Remix地址:https://remix.ethereum.org/
使用的前提是需要谷歌或者火狐的瀏覽器,且安裝了MetaMask 插件
MetaMask 插件的安裝使用可以查看這個鏈接https://www.jianshu.com/p/cdb9e082d059
接下來我用Remix IDE寫一個簡單的合約,一切開始都從Hello Word 開始。
默認會有一個Ballot 投票合約,這我我點左上角的添加功能,重新建立一個文件,文件名命名為personal.sol
這里我些一個簡單的合約
solidity 的基本語法可以去這個網站實戰練習(https://cryptozombies.io/zh/)這個超爽邊玩。
我這里寫個say()方法 和給個屬性age
合約截圖如下:
OK編譯沒問題,接下來我們在測試網上部署合約,先要確定你的MetaMask 插件是選擇的測試網路(我一般選擇Ropsten測試網)
此時開始部署,點擊瀏覽器MetaMask插件 確認提交等待測試網路上的礦工處理。
部署成功後點擊At Address 可以查看到合約公開的操作方法,每執行一次方法就也就是執行一次合約的事物,這是需要Gas 燃料的,沒一步需要礦工處理
OK 此時我們查看一下 age的值 點擊age ,可以看到age = 10,調用一下increaseAge 方法給它賦值80,此刻執行一下合約,礦工處理完後,查看一下age 變數已經為80
現在一個超簡單的合約已經部署成功了,智能合約是一個很有想像空間的玩意,從簡單的合約開始,熟練Solidity 語法。
㈢ 以太坊的智能合約是什麼意思
以太坊智能合約是指,部署在以太坊上的智能合約,是一段程序,運行在以太坊的虛擬機EVM中,程序可以按照事先約定的某種規則自動執行操作,執行合約的條款。
同時,智能合約對接收到的信息進行反應,它既可以接收和儲存價值,也可以向外發送信息和價值。
介紹
以太坊創始人V神指出過,以太坊智能合約中的「『合約』不應被理解為需要執行或遵守的東西,而應看成是存在於以太坊執行環境中的『自治代理』(autonomous agents),它擁有自己的以太坊賬戶,它們收到交易信息後就相當於被捅了一下,然後自動執行一段代碼。」
智能合約可以調用其它的智能合約,這就是開啟創立自治代理的能力,代理可以自己進行交易。在區塊鏈上,我們存儲的信息都是「狀態」,而智能合約就是它用於狀態轉換的方式。