📜 [專欄新文章] 2021 區塊鏈開發入門
✍️ Johnson Chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
在我大學的時候,除了學習網頁前端之外,因為課程報告的需要接觸到以太坊(Ethereum),於是開始學寫智能合約,包括它使用的程式語言 solidity。
工作以後鮮少再碰以太坊的相關技術,直到最近想重新把以太坊學起來,故而決定寫這篇文章,讓初次接觸區塊鏈與智能合約的人更好地進入開發者的世界。這篇文章不只面向開發者,同時也希望能夠給對區塊鏈有興趣的人,指引一條清晰的學習路線。
關於區塊鏈
區塊鏈會被廣為人知,無非是因為虛擬貨幣的出現,而虛擬貨幣的鼻祖就是比特幣。在比特幣出現以前,沒有一個能夠在全球網路上通用的數位貨幣;在比特幣出現之後,才真的實現了數位化的貨幣,能夠在全球網路上流通。
這樣的技術性突破,blockchain 的名字從比特幣白皮書中被萃取出來,而這項技術也被更多人拿去做研發以及創新。
區塊鏈這項技術的特性可以簡單概括為兩點:去中心化(decentralized)與不可竄改(immutable)。去中心化有程度上的差別,在公共網路上由世界各地的節點共同維護的區塊鏈,去中心化程度較高;相較之下,私人企業開發由特定節點來驗證交易的區塊鏈,去中心化程度較低。
為什麼是以太坊?
這年頭區塊鏈三個字大行其道,大部分都是為區塊鏈而區塊鏈的商業炒作。容許我獨斷地說,以太坊才是區塊鏈應用的大門。
以太坊由全球最大的區塊鏈社群組成,提供一個去中心化的虛擬機器(Ethereum Virtual Machine)來處理「智能合約」,它是一個公共的區塊鏈平台,逛逛以太坊的官網吧!
智能合約
在以太坊區塊鏈中有所謂的智能合約,智能合約能夠部屬到以太坊區塊鏈上,合約即程式碼,放到區塊鏈上就不能再更新,只能執行合約上的程式,持有以太幣的人能夠與合約進行交易。把智能合約想像成是一台自動販賣機,把錢(以太幣)投進去,飲料會掉出來(合約上的程式會被執行)。
在現實生活中,簽訂合約的雙方認為合約有效而且可以被信任,是因為有國家法律來保障,違反合約可能會受到法律制裁;而用以太幣與智能合約互動,認為智能合約可以被信任,是因為智能合約的不可竄改性 — 以太坊虛擬機會毫無偏袒、完全中立、冰冷不帶任何感情地執行智能合約上已經寫好的程式碼。
建立在智能合約之上的虛擬貨幣
事實上,以太坊擴大了區塊鏈這項技術的應用層面。回頭想想,比特幣來自區塊鏈技術,某個人若想打造一款同比特幣一樣的虛擬貨幣,就得模仿比特幣去建造一個自己的虛擬貨幣區塊鏈,一個區塊鏈網路要能夠有效運作並非易事,還需要節點、需要靠人挖礦去驗證交易。此時,若使用以太坊的智能合約,撰寫虛擬貨幣需要的程式碼,將合約部屬到以太坊區塊鏈上,叮咚!他就可以發行自己的虛擬貨幣,根本不必再去建造底層的區塊鏈,也不用想挖不挖礦了。
此時會發現以太坊就像是一個區塊鏈平台,你不需要親手打造區塊鏈網路,即可享有區塊鏈去中心化與不可竄改的特性。與其他智能合約的開發者共同使用以太坊虛擬機 EVM(Ethereum Virtual Machine),在 EVM 上部屬無上限個智能合約。
以太坊是一項基礎建設,底層區塊鏈幫你架設好,開發者便有更多時間去發想應用到網頁、手機、或物連網設備上,以下是一段簡單的智能合約,該合約創造了一個虛擬貨幣簡稱 MAT…
直接進入開發領域 — 線上編輯器 Remix
Remix 是開發智能合約的線上編輯器,進入Remix官網,點選 Create New File 以後,把上方程式碼複製貼上。在左側欄位中有 solidity compiler 的選項,確認一下左側欄第一列顯示的版本,調成 0.7.0 (上方程式碼使用的版本),就可以按下下方 compile 的按鈕,將智能合約「編譯」成 bytecode(給機器讀的語言)。
接著我們要部屬合約到區塊鏈上,首先到左側欄位點選 DEPLOY & RUN TRANSACTIONS 的選項,可以看到環境是 javascript VM,這是指現在要部屬到的測試用虛擬機。按下下方的按鈕 Deploy 即可將合約「部屬」到 javascript VM 上。成功部屬後,你會發現 ACCOUNT 所持有的以太幣,從 100 變成 99.9999…,我們得知部屬智能合約需要花費一點點以太幣。
左側下方會有 Deployed Contracts,點開來就會列出合約上可供呼叫的函式,點那些函式就能與剛剛部屬上去的智能合約進行互動了。
有些函式呼叫會引發交易,所以需要以太幣,有些則不用。在 ACCOUNT 的地方可以展開來,它提供許多的地址 (address),也就是錢包,每個錢包裡面預設給你 100 顆以太幣,試著用那些地址去操作智能合約,你就能慢慢體會什麼是建立在以太坊之上的虛擬貨幣了。
真正的開發者世界
實際上開發智能合約只能算是以太坊開發的其中一部分,其他包括以太坊區塊鏈擴容方案、節點驗證等等又是另一個開發領域了,那部份我就沒有研究太多。而智能合約的開發是比較接近應用層面的,透過網頁前端或手機應用程式,與智能合約進行互動,稱作 Dapp(Decentralized App) 的開發,也象徵著網際網路走向 web3.0 的時代。
學習 solidity 語言,除了看硬生生的官方文件之外,我推薦去玩cryptozombies,我本身就是從這款網頁遊戲中學習這門語言,聽說是連小孩子都能輕易學習的教材。
除了學 solidity 之外,網路上還有很多方便的開發工具,開發者主要是運用這些工具做測試、自動化部屬、串接前端等等。許多網路上的教學文章會使用 Truffle + Ganache + web3.js 來建置開發環境。但我在這裡推薦另一款開發環境的架構,如果是新手直接從 hardhat 開始也是非常適合的,hardhat 的教學文章寫得清楚完整,本篇文章使用的程式碼也是從 hardhat-hackathon-boilerplate 這個專案而來。hardhat 使用的開發環境是 Waffle + Hardhat + ethers,它幫你把開發環境處理的簡單又舒服,讓開發者可以專注在開發智能合約上。
OpenZeppelin 是很有名的智能合約套件庫,開發時可以引入它的智能合約。智能合約很講究安全性,稍微沒寫好就可能被駭客鑽漏洞,虛擬貨幣就被盜走了!OpenZeppelin 提供的 SafeMath 很常被引入到專案,對新手來說看 OpenZeppelin 的合約也是很好的學習管道。此外,官方也建了一個學習網站ethernaut,主要在教導如何寫出安全性夠強的智能合約,可惜網站在我寫這篇文章的時間一直處於維修不能用的狀態。
最後再介紹一款實際上線的智能合約專案:Argent。它是一款運用智能合約來做虛擬貨幣錢包的公司,除了使用他們的錢包之外,也可以看看他們的智能合約是怎麼寫的,感受一下專業的程式碼架構與寫法。
小結
這篇文章希望能幫助到想了解區塊鏈這項技術的人,同時也想呈現一個智能合約的開發生態系,你大可以不必花太多力氣去了解密碼學、挖礦、節點、共識機制等等五花八門的專有名詞;反之,你可以專注在智能合約的開發,或回到本質去思考去中心化的用意、以及為什麼不可竄改的特性那麼重要。
智能合約除了做虛擬貨幣之外,也能夠做投票系統,原本以貨幣為起始點的區塊鏈技術,是智能合約的出現擴大了區塊鏈更具彈性的用途,這圈子需要更多的開發者來探勘這片新大陸。
尤其鼓勵人文社會科學的人才,無論是哲學、政治、經濟、法律或社會等各方領域,試著撇開人工智慧將主導未來社會的發展路線,與之截然不同的另一種形式:人類社會能否依靠科技的力量,促成彼此之間的合作,創造更有效率的市場、更公平的治理方式?
延伸閱讀:激進市場(Radical Markets: Uprooting Capitalism and Democracy for a Just Society)
2021 區塊鏈開發入門 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有1部Youtube影片,追蹤數超過4萬的網紅Taka Elly,也在其Youtube影片中提到,衛生福利部安心專線(0800-788-995,請幫幫救救我)提供24小時免費心理諮詢服務, 生命線1995 張老師1980,亦可提供適當的心理支持。 張老師網站 http://www.1980.org.tw/web3-20101110/... 日本厚生労働省網站 提供不同的資訊方法,也有透...
web3網站 在 李世淦-屏東縣議員 Facebook 的最佳解答
徵才機關:國立屏東特殊教育學校
人員區分:其他人員
官職等:無
職系:無
名額:1
性別:不拘
工作地點:90-屏東縣
有效期間:109/07/30~109/08/10
資格條件:
(一)具國內、外大學以上學歷。(持國外學歷證件者,畢業學校應為教育部認可之國外大學院校,並應附中文譯本、經駐外單位驗證之國外學歷證件、經駐外單位驗證之歷年成績證明及譯本、內政部移民署核發之入出境紀錄、護照)。
(二)具備計劃撰寫能力及溝通協調能力。
(三)具備資料檢索彙整能力及公文文書處理能力。
(四)熟悉電腦視窗作業系統 Office (MS Word、Power Point、Excel 等)
(五)曾擔任專任助理或具備相關經驗者尤佳。
工作項目:
(一)協辦服務群課程綱要實施相關配套措施與課程推動工作。
(二)辦理課程中心各項會議、研習規劃與執行等相關業務。
(三)辦理計畫人事、經費、文書等行政作業。
(四)編製會議文件、計畫報告,處理意見蒐集彙整等
(五)其他有關課程中心各項庶務工作及校內相關臨時交辦事項。
工作地址:
國立屏東特殊教育學校(920屏東縣潮州鎮光春路311號)。
電子地圖
聯絡E-Mail:
聯絡方式(含檢具文件):
(一)依據教育部國民及學前教育署109年5月19日臺教國署原字第1090041602號函辦理。
(二)待遇:依據教育部國民及學前教育署專案計畫專任助理人員工作酬金參考表支應。
1.學士第一年起用,月支薪額新臺幣 32,470 元。
2.碩士第一年起用,月支薪額新臺幣 37,135 元。
(三)聘用期間:自報到日起至109年12月31日止(得視其服務及適任狀況決定是否續聘)。
(四)公告網站:
1.本校網站(https://web.pses.ptc.edu.tw/npss.asp)。
2.國教署特教網路中心(https://www.aide.edu.tw)。
3.行政院人事行政總處事求人網站(https://web3.dgpa.gov.tw/want03front/AP/WANTF00001.aspx)。
(五)簡章及報名表下載日期:即日起至109年8月10日(星期一)止,於公告網站上查閱。請自行以A4紙張下載,若未依規定者,恕不受理報名。
(六)報名方式及時間:
1.一律採通訊報名(請將報名表件於109年8月10日前寄至本校教務處,郵戳為憑)。地址:920屏東縣潮州鎮光春路311號 (教務處收。電話:(08)780-5510分機200、202。)
2.應繳資料:
(1) 甄選報名表。
(2) 國民身分證影本
(3) 最高學歷畢業證書影本
(4) 相關經歷資料或服務證明影本。
上揭證件影本應自行以A4紙張影印所需證件,並依本校簡章規定依序裝訂,由本校留存。國民身分證、畢業證書正本於錄取報到時繳驗,若查驗不符將取消錄取資格,不得有異議。
(七)甄選方式及時間:
1.甄選方式:
(一) 初審:書面審查。
(二) 複審:初審合格者,本校擇優通知參加面試(含業務知能測驗)。
2.複審時間及地點:視初審結果,另行通知。
(八)錄取聘用:
1.依複審總成績高低順序,錄取正取人員1名,備取人員若干名。
2.錄取結果公告於本校網站 (總成績未達70分者得不予錄取,並得從缺)。
(九)注意事項:
1.正取人員應依本校通知時間完成報到手續,逾期未報到者視同自願放棄錄取資格或於試用期間不適任者,將依序由備取人員遞補。
2.本員額為專案行政助理人員,無須陳報銓敘部登記採計年資,其年資亦不作為採計提敘薪俸級及退休之用。
3.錄取人員工作內容依簽定之契約書為準。
4.聘用經費依據:「教育部國民及學前教育署109年5月19日臺教國署原字第1090041602號函」辦理,計畫補助終止,聘約即無條件終止。
(十)本簡章如有未盡事宜悉依有關法令規定辦理,並公告於本校網頁。
web3網站 在 李世淦-屏東縣議員 Facebook 的最佳貼文
徵才機關:國立屏東特殊教育學校
人員區分:其他人員
官職等:無
職系:無
名額:1
性別:不拘
工作地點:90-屏東縣
有效期間:109/03/13~109/03/20
資格條件:
一、具國內、外大學以上學歷。
二、具備計劃撰寫能力及溝通協調能力。
三、具備資料檢索彙整能力及公文文書處理能力。
四、熟悉電腦視窗作業系統 Office (MS Word、Power Point、Excel 等)
工作項目:
一、辦理特殊教育課程計畫書檢視等相關業務。
二、辦理特殊教育課程計畫機制規劃與執行相關業務。
三、辦理特殊教育課程計畫各項會議、研習規劃與執行等相關業務。
四、辦理課程計畫人事、經費、文書等行政作業。
五、編製會議文件、計畫報告,處理意見蒐集彙整等
六、其他有關課程計畫各項庶務工作及校內相關臨時交辦事項。
工作地址:
920屏東縣潮州鎮光春路311號
電子地圖
聯絡E-Mail:
聯絡方式(含檢具文件):
壹、依據教育部國民及學前教育署109年3月3日臺教國署原字第1080152726號函辦理。
貳、類別名額:專任助理正取1名,備取若干名。
參、待遇:依據教育部國民及學前教育署專案計畫專任助理人員工作酬金參考表支應。
一、學士第一年起用,月支薪額新臺幣 32,470 元。
二、碩士第一年起用,月支薪額新臺幣 37,135 元。
肆、聘用期間:自109年4月1日起至109年12月31日止(得視其服務及適任狀況決定是否續聘)。
伍、公告期間:
一、自即日起至109年3月20日(星期五)止。
二、公告網站:
(一)本校網站(https://web.pses.ptc.edu.tw/npss.asp)。
(二)國教署特教網路中心(https://www.aide.edu.tw)。
(三)行政院人事行政總處事求人網站(https://web3.dgpa.gov.tw/want03front/AP/WANTF00001.aspx)。
陸、簡章及報名表下載日期:即日起至109年3月20日(星期五)止,於公告網站上查閱。請自行以A4紙張下載,若未依規定者,恕不受理報名。
柒、報名方式及時間:
一、採通訊或現場繳件報名(請於109年3月20日(星期五)前寄至本校,郵戳為憑;現場繳件截止時間為109年3月20日中午12時止)。地址:920屏東縣潮州鎮光春路311號 (教務處收。電話:(08)780-5510分機200、202。)
二、應繳資料:
(一) 甄選報名表
(二) 國民身分證影本
(三) 最高學歷畢業證書影本
(四) 相關經歷資料或服務證明影本
上揭證件影本應自行以A4紙張影印所需證件,並依本校簡章規定依序裝訂,由本校留存。國民身分證、畢業證書正本於錄取報到時繳驗,若查驗不符將取消錄取資格,不得有異議。
捌、甄選方式及時間:
一、甄選方式:書面審查(初審)及面試(複審)。
二、面試(複審)時間及地點:視初審結果,另行通知。
玖、錄取聘用:
一、依面試(複審)總成績高低順序,錄取正取人員1名,備取人員若干名。
二、面試(複審)結果預定最遲於3月底前公告於本校網站,總成績未達70分者得不予錄取。
拾、注意事項:
一、正取人員應依本校通知時間完成報到手續,逾期未報到者視同自願放棄錄取資格或於試用期間不適任者,將依序由備取人員遞補。
二、本員額為專案行政助理人員,無須陳報銓敘部登記採計年資,其年資亦不作為採計提敘薪俸級及退休之用。
三、錄取人員工作內容依簽定之契約書為準。
四、聘用經費依據:「教育部國民及學前教育署109年3月3日臺教國署原字第1080152726號函辦理」辦理,計畫補助終止,聘約即無條件終止。
拾壹、本簡章如有未盡事宜悉依有關法令規定辦理,並公告於本校網頁。
web3網站 在 Taka Elly Youtube 的精選貼文
衛生福利部安心專線(0800-788-995,請幫幫救救我)提供24小時免費心理諮詢服務,
生命線1995
張老師1980,亦可提供適當的心理支持。
張老師網站
http://www.1980.org.tw/web3-20101110/...
日本厚生労働省網站
提供不同的資訊方法,也有透過Line的諮詢!請參考
https://www.mhlw.go.jp/stf/seisakunit...
--------------------
每個在做網路工作或是在經營網路媒體的人
應該都必須要面對的課題
最近身邊的創作者朋友越來越多,常常想著這些人也都必須面對一樣的課題,不知道大家是麼想的。
其實唯一的擔心就是大家心裡過不去,
除了網紅之外,在網路上來來去去隨意謾罵的人比比皆是,
不小心都有曾經遇到過的經驗,希望大家可以不要受到不好的東西影響,人活著沒什麼重要的就是要快快樂樂就好。

web3網站 在 為了讓大家認識Web3.0 以及分散式儲存,同時也讓自己開始 ... 的推薦與評價
Storage 的API,到底IPFS 可以解決什麼問題?可以用硬碟挖礦的Filecoin 又是什麼概念?區塊鏈技術如何解決網站經營所面臨的難題?讓我們透過WordPress 來認識它們吧! ... <看更多>
web3網站 在 我做了人生第一個Web 3.0 網頁,很簡單你也可以 - YouTube 的推薦與評價
Comments • 27 · What is Web 3.0? (Explained with Animations) · NFT 現況及未來!! · 【幣圈直擊】何謂「Web 3.0」? · Web 3.0 是什麼? · Web3.0到底是怎么 ... ... <看更多>