您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“以太坊智能合約怎么創(chuàng)建”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“以太坊智能合約怎么創(chuàng)建”吧!
區(qū)塊鏈遵循的是“沒有中央權(quán)力機構(gòu)”,這就是智能合約引入的原因。但你有沒有想過如何使用智能合約?那么,在以太坊智能合約的這一部分中,我將解釋保險流程中智能合約的使用案例。
讓我們考慮一個航班延誤保險的例子。假設(shè)你想要從出發(fā)地A到目的地C進行飛行,但你沒有直接飛行。那么,你決定通過B來轉(zhuǎn)機?,F(xiàn)在,你的路線將從A到B,然后從B到C,其中B是機場,你將更改航班。不幸的是,從A到B以及從B到C的航班之間沒有太大的時間差距。所以,如果有任何問題,一旦從A到B的航班延誤,那么你將錯過從B到C的航班。意識到這一點后,為了避免重大損失,你可能需要一個航班延誤保險。
現(xiàn)在,如果你從A到B的航班延誤(這將使你錯過從B到C的航班),你將獲得保險金額。這是正常的情況,如果你的航班延誤,你可以申請保險。然后,有人會核實并批準保險,最后,你將獲得你的保險金額。但這是一個漫長的過程。
談到金融交易,特別是當你拿錢時,“越快越好”,不是嗎?那么,讓我們看看智能合約如何加強保險流程。智能合約是數(shù)字合約,在滿足特定條件時自動執(zhí)行。如果航班延誤,可以編寫智能合約以向選擇航班延誤保險的人支付保險金額。因此,當航班延誤并且系統(tǒng)記錄此延遲時,保險將立即支付。
OK!保險金額在幾秒鐘內(nèi)支付。這就是智能合約如何簡單快速地實現(xiàn)流程。
你已在上面的示例中看到智能合約如何加強財務(wù)流程。除快速交易外,智能合約還有更多好處。在這里,我列出了使用智能合約的其他一些好處:
自動化:智能合約自動執(zhí)行所有步驟。
沒有中介:當你使用智能合約時,你不需要中介來完成工作,因為一切都將由智能合約處理。
成本效益:使用智能合約可以節(jié)省銀行收取的交易費用和中介(如果有的話)的服務(wù)費用。
現(xiàn)在,我們知道如何使用智能合約來讓世界變得更快,讓我們親身體驗這個以太坊智能合約教程。
對于以太坊智能合約教程,我們需要5個重要的應(yīng)用程序:
NodeJS
NPM
Ethereum
Truffle
Solidity Compiler
NodeJS是一個用于構(gòu)建服務(wù)器應(yīng)用程序的JavaScript框架。由于我們使用的是專用網(wǎng)絡(luò),因此NodeJS可以輕松構(gòu)建網(wǎng)絡(luò)應(yīng)用程序。
要安裝Nodejs,請在終端中運行以下命令:
$ sudo apt-get install nodejs
NPM代表Node Package Manager,用于運行Nodejs應(yīng)用程序。
要安裝NPM,請在終端中運行以下命令:
$ sudo apt-get install npm
以太坊是一個基于開源和公共區(qū)塊鏈的分布式計算平臺,用于構(gòu)建去中心化應(yīng)用程序。
要安裝以太坊,請在終端中運行以下命令:
$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa:ethereum/ethereum $ sudo apt-get update $ sudo apt-get install ethereum
Truffle是以太坊Blokchains的開發(fā)環(huán)境,測試框架和資產(chǎn)管道。
要安裝Truffle,請在終端中運行以下命令:
$ npm install -g truffle
Solidity是一種用于編寫智能合約的編程語言。要在我們的系統(tǒng)上運行智能合約,我們必須安裝Solidity Compiler。
要安裝Solidity Compiler,請在終端中運行以下命令:
$ sudo npm install -g solc
Genesis Block是Blockchain的起點,我們需要一個genesis文件來啟動Blockchain。在以太坊智能合約的這一部分中,我們將編寫一個Genesis文件并對其進行配置以允許我們運行智能合約。
讓我們首先創(chuàng)建一個新目錄,然后在該目錄中創(chuàng)建genesis文件:
$ mkdir ethereum-network $ cd ethereum-network $ nano genesis.json
現(xiàn)在,在genesis.json文件中輸入以下行:
{ "config": { "chainId": 2019, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "alloc": {}, "difficulty" : "200" "gasLimit" : "99999999999999" }
保存并退出。
在此Etheruem智能合約教程中,我們將在專用網(wǎng)絡(luò)上部署以太坊智能合約。因此,要啟動此網(wǎng)絡(luò),我們將使用以下命令:
$ geth --datadir ./dataDir init ./genesis.json
$ geth --port 4321 --networkid 1234 --datadir=./dataDir --rpc --rpcport 8543 --rpcaddr 127.0.0.1 --rpcapi "eth,net,web3,personal,miner"
在進一步討論之前,讓我解釋一下上面命令中使用的一些重要參數(shù):
datadir:存儲與Blockchain相關(guān)的數(shù)據(jù)的目錄。
rpc:啟用HTTP-RPC服務(wù)器。
rpcport和rpcaddr分別用于設(shè)置網(wǎng)絡(luò)的端口和地址。
rpcapi:允許我們使用不同的API與以太坊網(wǎng)絡(luò)進行交互。
Geth控制臺是我們可以與以太坊私人區(qū)塊鏈互動的控制臺。要將Geth連接到以太坊私有區(qū)塊鏈,請打開一個新終端并運行以下命令:
$ geth attach http://127.0.0.1:8543
現(xiàn)在,我們在Geth控制臺中,我們可以與區(qū)塊鏈進行通信。
要進行任何交易,我們需要一個帳戶。在以太坊的智能合約教程的這一部分中,我們將看到如何從Geth控制臺創(chuàng)建一個新的以太坊帳戶。
按照目前為止的步驟,我們已經(jīng)在Geth控制臺中。要創(chuàng)建新帳戶,請在Geth控制臺中運行以下命令:
> personal.newAccount('seedphrase')
將seedphrase替換為你要為此帳戶設(shè)置的密碼。
我們創(chuàng)建了一個新帳戶,但此帳戶沒有ether。我們需要開始采礦。要開始挖掘,我們需要先解鎖帳戶。讓我們解鎖帳戶并開始挖掘。
> personal.unlockAccount(web3.eth.coinbase, "seedphrase") > miner.start()
隨著采礦不斷發(fā)生,一些ether將被存入該賬戶。
注意:這些ether是虛擬ether,沒有實際價值。
要檢查帳戶中的ether余額,我們將運行以下命令:
web3.fromWei(eth.getBalance(eth.coinbase), "ether")
當你定期運行此命令時,你將看到由于采礦而導(dǎo)致ether增加。
要停止挖掘,請運行以下命令:
> miner.stop()
現(xiàn)在我們已經(jīng)準備好了我們的私人區(qū)塊鏈,我們將看到如何使用Truffle創(chuàng)建以太坊智能合約。在本教程中,我們將創(chuàng)建一個簡單的“Hello World”以太坊智能合約。
首先,讓我們首先創(chuàng)建一個新目錄來存儲Truffle項目。然后在該目錄中,我們將創(chuàng)建一個新的Truffle項目。打開一個新終端并運行以下命令:
$ mkdir truffle $ cd truffle $ truffle init
truffle init命令將創(chuàng)建Truffle項目所需的所有必要文件。
現(xiàn)在我們已準備好部署以太坊智能合約的所有內(nèi)容,讓我們編寫一個“Hello World”智能合約。
所有合約都應(yīng)寫在contracts
目錄中。 我們將切換到此目錄并創(chuàng)建名為HelloWorld.sol
的合約,并在此文件中添加以下行:
pragma solidity ^0.4.15; contract HelloWorld { string public message; function Hello() public{ message = "Hello World!"; } }
就是這個!但是這個智能合約不能單獨執(zhí)行。我們將不得不為它做一些配置。
要遷移我們的智能合約,我們必須在truffle
目錄的migrations
目錄中添加一個文件。在這個目錄中,我們將添加一個名為2_deploy_contracts.js
的文件,其中包含以下內(nèi)容:
var HelloWorld = artifacts.require("./HelloWorld.sol"); module.exports = function(deployer) { deployer.deploy(HelloWorld); };
保存并退出。
要在我們的網(wǎng)絡(luò)上運行Truffle,我們需要編輯truffle
目錄中的truffle.js
文件。打開此文件并進行以下輸入:
module.exports = { rpc: { host:"localhost", port:8543 }, networks: { development: { host: "localhost", port: 8543, network_id: "*", from: "0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a", gas: 20000000 } } };
注意:將from
地址替換為你在上一步中創(chuàng)建的帳戶的地址。
在以太坊智能合約教程的最后一節(jié)中,我們將了解如何在我們的以太坊專用網(wǎng)絡(luò)上部署我們的Hello World
智能合約。
在我們執(zhí)行智能合約之前,我們必須首先將其編譯并部署到我們的以太坊專用網(wǎng)絡(luò)。我們將使用以下命令執(zhí)行此操作:
$ truffle compile
現(xiàn)在,我們必須解鎖我們的帳戶并開始挖掘。使用Geth控制臺返回終端并運行以下命令:
> personal.unlockAccount(web3.eth.coinbase) > miner.start()
然后,返回到具有truffle
作為當前工作目錄的終端并運行以下命令:
$ truffle migrate
等待部署完成。
要執(zhí)行Hello World
智能合約,我們必須進入Truffle控制臺。運行以下命令來執(zhí)行此操作:
$ truffle console
你現(xiàn)在將在Truffle控制臺。要執(zhí)行智能合約,請運行以下命令:
> var first_contract > HelloWorld.deployed().then(function(instance) { first_contract = instance; }) > dApp.message.call()
到此,相信大家對“以太坊智能合約怎么創(chuàng)建”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。