【新年企劃】過年就包紅包幣 | 智能合約開發計劃 #1

科技隨筆
·
·
IPFS
·
2022年的農曆新年在一月底就要登場了!說到新年或多或少一定免不了要家族團聚吃個團圓飯,又到了這個時間了,身為社畜的你想好今年要包多少紅包給家人了嗎?這次過年就逼親戚下載錢包,直接把你設計的發財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們吧!

新年快樂!

在深思熟慮之後,我決定在一月份開啟一個特別企劃,與大家分享如何發行自己的加密貨幣,今年過年就逼親戚下載錢包,直接把你的發大財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們,除了讓他們能夠體驗第一次獲得加密貨幣的感受以外,或許你也可以想想自己的代幣經濟,例如一億顆新臺幣能夠兌換一頓燭光大餐之類的,好不浪漫。

所以這個月預計大約花四週共四篇文章的篇幅,在過年前把幣準備好,我們一起發送自己的加密貨幣給周圍的親朋好友當作一種祝福吧,一定會很酷的!我們會先在本機端進行測試,之後再發到以太坊的測試網上,所有在以太坊測試網上的操作都是不用錢的,當然上面的錢也完全不具有任何價值。等到確定我們的智能合約在以太坊測試網上也都沒問題了,再考慮去以太坊主網還是Polygon上發幣都可以,或是就送親戚測試網上的幣其實也可以啦~

嗯…不過有些內容我的文章還來不及寫到,本文中我們先把未來可能會用到的東西大致講過一遍,如果有地方不太清楚或是有誤的話歡迎留言告訴我,我會在後續的文章中做調整。這篇就是先讓大家先暖暖身,分為六大主題:

1. 區塊鏈瀏覽器

2. 智能合約

3. Solidity

4. Remix

5. 以太坊的主網與測試網

6. 事前準備

請特別留意!由於這篇有些東西會需要連線到外部網址,所以我會特別都把網址打出來,這些網站都絕對不會要求你輸入任何錢包的私鑰或助記詞,或是要求你要先付錢才能使用,記得在操作前都要對一下網址,可以的話盡量不要直接去Google搜尋,免得不小心掉入詐騙或釣魚網站中了。

區塊鏈瀏覽器

關於區塊鏈瀏覽器,我在之前的文章「我用一萬塊買了最後一個 Traveloggers」中提到甚麼是區塊鏈瀏覽器、如何使用以及有哪些特別功能,沒看過的可以先回去看一下並進行一些操作與研究。由於未來我們要開發自己的程式,並用這些程式碼發行自己的加密貨幣,所以在玩這些東西之前一定要先摸摸看如Etherscan的瀏覽器,網址是 https://etherscan.io/ 把你的錢包地址複製起來查查看餘額之類的,都會對我們之後的開發部屬很有幫助。

智能合約

自從2009年比特幣誕生,以往的人如果想要打造自己的加密貨幣,就必須要先打造一條自己專屬的鏈,因為當時的區塊鏈就是一個帳本,帳本內紀錄的交易內容寫的幣種就會是發行在上面的幣,所以通常比較快都會直接拿比特幣的程式碼複製起來改一改重發一個自己的區塊鏈,或是對它進行快照直接分叉出新的幣,總之想要發行自己的加密貨幣,就必須先打造一條自己的區塊鏈,那就要有礦工幫忙維護這個新的區塊鏈,門檻相當高也非常麻煩,所以後來在2015年出現了以太坊,以及智能合約。

以太坊的出現幫助大家打造一條區塊鏈的基礎建設,每個人都能使用以太坊作為基礎,在上面撰寫智能合約的程式碼來發行自己的代幣。因為不用建立自己的區塊鏈,而是將自己發行的代幣依附在以太坊上,便大幅降低了發行貨幣的門檻,於是各式各樣的加密貨幣,甚至到後來的NFT就如雨後春筍般地冒出。

正常來說要發行自己的幣就需要寫一份智能合約,但是在OpenSea之類的應用平臺上我們可以不用寫程式就發行並轉移自己的NFT,事實上背後也是呼叫OpenSea開發的智能合約來做到的哦。

智能合約簡單來說就是放在區塊鏈上運行的程式碼,除了我們這次要發行自己的加密貨幣這個目標以外,智能合約還可以拿來寫許多不同的去中心化應用程式(Dapp),但是我們就不多談,可以把它們想像成是一台又一台功能不同的自動販賣機,選擇不同的販賣機,丟個硬幣進去,告訴機器我們目前需要的服務後,販賣機就會自動吐出結果;相對於我們這次的開發目標就會是丟錢包地址跟參數進去,期望這個智能合約能夠建立新的加幣貨幣,並且能夠有轉帳至他人錢包地址的服務。

Solidity

Solidity是受到C++、Python與JavaScript的影響產生出來的新程式語言,目標就是用來開發智能合約。藉由Solidity我們可以編寫出具有商業邏輯的應用程式,並在編譯後能夠在以太坊虛擬機(EVM)上自動運行這些服務,所以對於寫過程式的人而言,在學習Solidity時雖然邏輯差不多,但是要多了解一些商業的知識,不然沒辦法完全地看懂程式碼!

由於區塊鏈去中心化與不可竄改的特性,一旦這些應用程式被放到區塊鏈之後,就不能修改了,所以不用擔心被任何人破壞,更沒有人可以隨意更改這個智能合約的遊戲規則。

以下是Solidity的範例程式碼,稍微看一下它大概長什麼樣子吧:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

contract Variables {
    // State variables are stored on the blockchain.
    string public text = "Hello";
    uint public num = 123;

    function doSomething() public {
        // Local variables are not saved to the blockchain.
        uint i = 456;

        // Here are some global variables
        uint timestamp = block.timestamp; // Current block timestamp
        address sender = msg.sender; // address of the caller
    }
}

如果學過JavaScript應該會覺得蠻相似的,如果完全看不懂也沒關係,之後開始寫了再來研究吧,而這些範例的部分,有個網站是https://solidity-by-example.org/variables/,這裡面會有較新版本的Solidity程式碼範例可以學習。

Remix

Remix是以太坊提供給開發者的線上Solidity程式語言編輯環境,網址是https://remix.ethereum.org/,看到的畫面應該會類似於此:

最左側由上面數下來可以看到六個圖示

第一個是Remix的Logo。

第二個是檔案總管,網頁打開時就已經點選了,檔案總管能讓我們看到目前這個Remix線上開發環境的所有檔案。

第三個是Solidity的編譯器,它的用途很重要,當我們程式(智能合約)寫完之後就是要靠這個編譯器,將人類看的懂的程式碼,轉換成電腦看的懂的語言,讓電腦去執行我們希望它做的事情。

第四個是發佈以及執行剛剛編譯好的智能合約,並不是說智能合約編譯後就完工了,像我們這次的主題,發行自己的加密貨幣,那麼在讓電腦執行智能合約之前,我們勢必仍要先告訴它一些重要的參數,例如幣種名稱、總發行量、要發行在哪一個區塊鏈上、發行了這個幣請把所有的錢全部打到我的哪一個錢包中等等,這樣才算完整的發佈我們的智能合約哦!

第五個看起來像一個插頭,我們這次應該用不到,這個Plugin manager可以增加一些額外的套件,幫助我們開發不同的智能合約。

第六個就是設定,再左側的最底下,例如可以把背景主題換成淺色的功能。

只要點選檔案總管,並選擇某個程式檔案,就會在右邊最大塊的畫面中開啟程式碼,這裡就是用來寫程式的地方,右邊的下方則是之後當我們要發佈或執行編譯好的程式碼時,會顯示成功或是錯誤的地方,可以幫助我們檢測程式或是合約的錯誤。

之後我們會在Remix上面開發並且發行自己的加密貨幣,因為Remix是以太坊官方提供的線上整合開發環境,這麼佛心的工具使得我們完全不需要事前在電腦上安裝一堆不同版本的環境,大幅減低開發門檻與出錯的機會,若未來Solidity有版本升級,要切換也是易如反掌啦。

以太坊的主網與測試網

主網(Mainnet)指的就是我們平常在用的以太坊區塊鏈,上面流通的以太幣還有各式各樣的東西都是真的,但是如果今天我們是開發者,一定不希望自己寫的程式每次想要執行與驗證,都要放上區塊鏈,因為所有在鏈上的操作都是一筆可觀的手續費,而程式開發通常也不可能一次就到位,總是要反覆驗證避免有甚麼樣的漏洞。

這時候就是測試網出場的時機了,可以把測試網想像成是一模一樣的以太坊,不過上面流通的以太幣以及所有的幣種都是玩具鈔,常見的以太坊測試網有Ropsten、Rinkeby、Kovan、Goerli等等,要注意不同的測試網分別代表不同的區塊鏈哦!

在上面的任何操作雖然一樣需要消耗以太幣,但是那是假的以太幣,是真實世界不存在,只存在在幻想之中(真的以太幣好像也不存在真實世界中…),那這些以太幣玩具鈔要怎麼得到呢?所以很有意思的第一步,我們現在就要去領錢了,免費的錢!

首先,你要先有Metamask,因為我們之後開發都會在上面,通常我們會直接在Chrome瀏覽器上安裝插件,如果你還沒有的話Metamask的網址是https://metamask.io/,也能到網路上查查如何設定並開始使用Metamask錢包,記得要將助記詞或私鑰保管好,不要告訴任何人,否則一旦有人知道了你的私鑰,就有權利將錢包中所有的錢盜領出來,一定要注意!

在測試網中有個地方,只要把錢包地址給它,它就會發送假的以太幣給那個錢包,可能是因為發錢如流水吧,又被稱作水龍頭(Faucet),不同的測試網中有不同的水龍頭網址,Metamask在做主網切換的時候要注意,若你領了Ropsten測試網上的以太幣,錢包的網路卻還是在以太坊主網上的話,這些免費領到的錢就不會顯示出來。

Metamask切換至Kovan測試網路的兩步驟:

1. 在Metamask中點選「以太坊 主網路」的下拉選單


2. 選擇Kovan 測試網路


接著,將自己的錢包地址複製起來,我們去水龍頭領錢了!網址是https://linkfaucet.protofire.io/kovan,打開後頁面會長這樣:

左側的Network顯示為以太訪的測試網路Kovan,當然你可以點開下拉選單,轉換一下不同的測試網路,不過我們這次開發會在Kovan上,所以只要領Kovan測試網的ETH就好,右側輸入錢包地址,按下我不是機器人並Sand request。

按下之後,這個水龍頭就會發送交易,將ETH以及LINK幣鏈上轉帳給我們,看到”Waiting for confirmation”表示這些資產正在上鏈中可以稍等一下,直到變成”Request complete”就成功了!趕快回去打開Metamask錢包就能看到剛剛被發送的10顆Kovan LINK以及0.1顆Kovan ETH,再次強調,這裡的錢只是玩具鈔,就算你有100,000,000顆ETH,它的資產價值也是0哦!

事前準備

看完了這次的暖身,主要需要做的事情就是要先閱讀完這篇文章,接著準備好一個Metamask錢包,將其切換為Kovan測試網,再去水龍頭那領取免費的測試網以太幣;而需要學習的部分則是學著使用區塊鏈瀏覽器、看一下Solidity程式語言以及Remix開發環境大概長什麼樣子就好了。

下一篇我們就要在Remix上開始打造我們自己的加密貨幣了,敬請期待!


最後,謝謝你在百忙之中願意抽空來花時間來看我的文章,如果還喜歡這些內容的話希望能獲得你的追蹤及支持,也歡迎點此連結在其他平台找到我

下次見嚕 o((>ω< ))o~

原文連結 ITechNote 科技隨筆

CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

logbook icon
科技隨筆| 科技閱讀 | 程式語言 | 理財規劃 | 工具推薦 | 音樂盛宴 | 生活雜談 | 科技隨筆中,不只有科技! 在這裡,我會隨筆記下科技閱讀、程式語言、理財規劃、音樂饗宴以及生活雜談等等內容。 邀請您在過程中與我一同分享也一同成長。 讓我們在人生的旅途中不斷學習,努力成為更棒的人吧~ 在其他平臺關注我: https://linkby.tw/itechnote.co
  • 来自作者
  • 相关推荐

【音樂月報 #13】2022年10月號

【音樂月報 #12】2022年9月號

【音樂月報 #11】2022年8月號