好久沒(méi)有學(xué)習(xí)區(qū)塊鏈方面的知識(shí)了,目前通過(guò)自學(xué)大致掌握了Fabric聯(lián)盟鏈的搭建,鏈碼編寫(xiě)、部署,api調(diào)用,可以獨(dú)立開(kāi)發(fā)出一些基于fabric的應(yīng)用,感覺(jué)開(kāi)發(fā)出去中心化的應(yīng)用還是很有意思的,因?yàn)樗c之前開(kāi)發(fā)的ssm項(xiàng)目這種傳統(tǒng)中心化的app相比具有自己獨(dú)特的優(yōu)點(diǎn)。第一次開(kāi)發(fā)出來(lái)很有成就感,并且還申請(qǐng)了自己的軟著。
但是最近看論文,感覺(jué)有很多的實(shí)驗(yàn)都是用公鏈做的,基本上都是Ethereum,使用的是Solidity語(yǔ)言來(lái)編寫(xiě)的智能合約,所以自己就學(xué)習(xí)了一下。希望通過(guò)筆記給自己帶來(lái)更深刻的學(xué)習(xí)印象。
1. 什么是Ethereum?
Ethereum是公有鏈的一種,中文稱(chēng)之為以太坊。和區(qū)塊鏈類(lèi)似,他也有自己的代幣,叫作以太幣。Ethereum使用的共識(shí)合約是PoS。
感興趣的朋友可以去看我前面的博文 區(qū)塊鏈博文
以太坊是區(qū)塊鏈2.0時(shí)代的代表性產(chǎn)物,其推出了圖靈完備的智能合約,這一創(chuàng)新為區(qū)塊鏈和分布式應(yīng)用帶來(lái)了革命性的變化。我們可以通過(guò)創(chuàng)建自己的智能合約并且在繳納一定的gas(可以理解成讓礦工幫助執(zhí)行合約的小費(fèi))后,就能夠在分布式的區(qū)塊鏈上運(yùn)行自己合約并且執(zhí)行相應(yīng)的功能。它們可以用于各種領(lǐng)域,如去中心化金融(DeFi)、數(shù)字身份、供應(yīng)鏈管理、社交媒體和游戲。
而現(xiàn)實(shí)世界就是通過(guò)智能合約來(lái)和區(qū)塊鏈上的世界創(chuàng)建聯(lián)系。好比區(qū)塊鏈?zhǔn)且粋€(gè)很大的分布式數(shù)據(jù)庫(kù),而寫(xiě)合約就像是寫(xiě)sql一樣面對(duì)區(qū)塊鏈上的數(shù)據(jù)進(jìn)行了各種操作。可見(jiàn)智能合約的編寫(xiě)是運(yùn)用區(qū)塊鏈技術(shù)的核心技術(shù)。而以太坊使用最廣泛的編程語(yǔ)言來(lái)實(shí)現(xiàn)智能合約的就是Solidity。Solidity 是一種面向合同的智能合同編程語(yǔ)言,特別設(shè)計(jì)用于創(chuàng)建以太坊和以太坊兼容區(qū)塊鏈上的智能合同。
2. Solidity開(kāi)發(fā)Remix環(huán)境初識(shí)
開(kāi)發(fā)Solidity我選擇的是在線開(kāi)發(fā)工具Remix,比較方便而且現(xiàn)在大家的網(wǎng)絡(luò)都是比較好的,使用這個(gè)在線的開(kāi)發(fā)工具感覺(jué)還是挺不錯(cuò)的。余運(yùn)行環(huán)境可以采取metamask這個(gè)網(wǎng)頁(yè)錢(qián)包,后面會(huì)介紹。
http://remix.ethereum.org/ 這個(gè)就是Remix的在線開(kāi)發(fā)地址:在左側(cè)的導(dǎo)航欄我們可以先來(lái)看一下官方提供的合約:
想必大家一眼看上去很熟悉吧,沒(méi)錯(cuò),Solidity也是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,有著編程基礎(chǔ)的上手起來(lái)也是不難的?,F(xiàn)在來(lái)寫(xiě)一個(gè)簡(jiǎn)單的hello合約,先在導(dǎo)航欄右健contract,然后新建一個(gè)合約(如下左圖)
// SPDX-License-Identifier: GPL-3.0
//pragma solidity >=0.8.2 <0.9.0;
pragma solidity^0.8.11; // 代表向上兼容
contract hello {
string hellomsg;
//just like constructor in java
constructor(string memory _hellomsg){
hellomsg = _hellomsg;
}
}
在編寫(xiě)完成后,直接ctrl+s后編譯,編譯完成后如上右圖所示。然后我們點(diǎn)擊導(dǎo)航欄第四個(gè)以太坊圖表的那個(gè)按鈕就可以部署了:并且我們可以部署多次每一次運(yùn)行出來(lái)的合約對(duì)象都是不一樣的。每運(yùn)行一次就會(huì)產(chǎn)生一個(gè)合約對(duì)象并且每個(gè)合約對(duì)象都有一個(gè)地址,比如我這里運(yùn)行了兩次,第一次的地址0xd9145CCE52D386f254917e481eB44e9943F39138,而第二次的地址:0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8
再來(lái)介紹一下一些其他功能,“ENVIRONMENT” 代表你要選擇的以太坊區(qū)塊鏈環(huán)境或模擬環(huán)境,用于測(cè)試和運(yùn)行你的智能合約。
“Remix VM” 代表 Remix 的本地虛擬機(jī)環(huán)境,用于模擬以太坊網(wǎng)絡(luò)以進(jìn)行智能合同開(kāi)發(fā)和測(cè)試。這是 Remix 提供的一個(gè)內(nèi)置的虛擬以太坊網(wǎng)絡(luò)環(huán)境,允許開(kāi)發(fā)者在本地進(jìn)行智能合同的測(cè)試,而不需要連接到實(shí)際的以太坊網(wǎng)絡(luò)。當(dāng)然我們也是可以連接到實(shí)際的以太坊網(wǎng)絡(luò)中來(lái)部署我們的合約的,我的截圖中的MataMask就是實(shí)際的以太坊網(wǎng)絡(luò)。
3. metamask安裝
安裝地址:https://metamask.io/ 注意科學(xué)上網(wǎng)
請(qǐng)注意一定要保管好自己的助記詞,這相當(dāng)于你的密鑰。
現(xiàn)在擁有了自己的錢(qián)包之后,需要去網(wǎng)站來(lái)申請(qǐng)到一些免費(fèi)的代幣。
在與以太坊(Ethereum)和其他區(qū)塊鏈網(wǎng)絡(luò)交互的錢(qián)包或應(yīng)用程序中,“水龍頭”(Faucet)是一個(gè)常見(jiàn)的術(shù)語(yǔ),指的是一個(gè)允許用戶獲取免費(fèi)加密貨幣的服務(wù)或工具。這通常是為了幫助新用戶獲得一些加密貨幣,以便他們可以開(kāi)始在區(qū)塊鏈網(wǎng)絡(luò)上執(zhí)行交易或與智能合同互動(dòng)。
MetaMask 是一款以太坊錢(qián)包擴(kuò)展,它允許用戶管理以太坊資產(chǎn)、進(jìn)行交易和與智能合同互動(dòng)。一些以太坊網(wǎng)絡(luò)提供了水龍頭服務(wù),這意味著用戶可以通過(guò)水龍頭獲取一定數(shù)量的免費(fèi)以太幣(ETH)用于測(cè)試和學(xué)習(xí)以太坊網(wǎng)絡(luò)。這些免費(fèi)以太幣通常用于支付交易費(fèi)用(Gas)以及與智能合同互動(dòng)。
用戶通常需要提供自己的以太坊地址(Ethereum address),然后水龍頭會(huì)將一定數(shù)量的ETH發(fā)送到該地址。請(qǐng)注意,這些水龍頭通常用于測(cè)試和學(xué)習(xí),分發(fā)的ETH數(shù)量可能有限,并且可能在一定時(shí)間后停止分發(fā)。如果您是新手或想要嘗試以太坊網(wǎng)絡(luò)的功能,可以嘗試尋找適用于您的以太坊網(wǎng)絡(luò)的水龍頭服務(wù)。
在這個(gè)網(wǎng)站目前可以申請(qǐng)到免費(fèi)的代幣 mumbaifaucet.com
將你的以太坊地址輸入點(diǎn)擊Send Me MATIC即可。如果交易沒(méi)有直接成功的話,就打開(kāi)安裝的metamask,應(yīng)該會(huì)看到允許鏈接之類(lèi)的操作,點(diǎn)擊即可。獲取到matic后,需要將網(wǎng)絡(luò)連接到到這個(gè)mumbai的網(wǎng)絡(luò),在這個(gè)網(wǎng)絡(luò)上才可以使用它的代幣。通過(guò) chainlist.org 這個(gè)網(wǎng)站,此時(shí)點(diǎn)開(kāi)matamask允許連接到mumbai,就會(huì)看到我們的網(wǎng)絡(luò)中多一個(gè)mumbai
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-851189.html
然后我們可以使用Mumbai網(wǎng)絡(luò)連接到真實(shí)的網(wǎng)絡(luò)來(lái)部署合約了,只需要將網(wǎng)絡(luò)切換到MetaMask即可。
在部署合約后,錢(qián)包會(huì)通知你是否同意花費(fèi)gas去部署,點(diǎn)擊確認(rèn)后就會(huì)部署到實(shí)際的網(wǎng)絡(luò)中
在之前的 mumbaifaucet.com 網(wǎng)站點(diǎn)擊交易可以看到具體地馬蹄走向:這次的介紹到這里就結(jié)束了,下期再學(xué)習(xí)一下基本的語(yǔ)法,還是通過(guò)具體的實(shí)例合約來(lái)學(xué)習(xí)語(yǔ)法比較快,畢竟也是面向?qū)ο蟮恼Z(yǔ)法,學(xué)起來(lái)還是有點(diǎn)基礎(chǔ)的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-851189.html
到了這里,關(guān)于【Solidity】Remix在線環(huán)境及錢(qián)包申請(qǐng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!