[爆卦]web3架構是什麼?優點缺點精華區懶人包

雖然這篇web3架構鄉民發文沒有被收入到精華區:在web3架構這個話題中,我們另外找到其它相關的精選爆讚文章

在 web3架構產品中有3篇Facebook貼文,粉絲數超過5萬的網紅軟體開發學習資訊分享,也在其Facebook貼文中提到, 在 2 週內, 你將學習Web3J, TruffleV4, MetaMask, Ganache, Solidity ++ 等以太坊區塊鏈技術以開發一個完整的分散式應用程式 (DAPP) 從這 11.5 小時的課程,你會學到 1 利用以太坊工具/軟體,如錢包、Geth、MetaMask、Remix...

  • web3架構 在 軟體開發學習資訊分享 Facebook 的精選貼文

    2021-08-29 10:49:13
    有 16 人按讚

    在 2 週內, 你將學習Web3J, TruffleV4, MetaMask, Ganache, Solidity ++ 等以太坊區塊鏈技術以開發一個完整的分散式應用程式 (DAPP)

    從這 11.5 小時的課程,你會學到

    1 利用以太坊工具/軟體,如錢包、Geth、MetaMask、Remix、TruffleV4、Ganache….

    2 建立符合 ERC20 標準的代幣,以啟動首次代幣發行(ICO)

    3 使用不同的共識(PoW,PoA)建立私人區塊鏈網路

    4 使用 Web3/Ganache/TruffleV4/Mocha 框架等多種工具在Solidity中開發智慧合約

    5 熟練地描述以太坊區塊鏈的工作原理 | 以太坊,Gas,POW,POS,節點…

    6 描述區塊鏈技術的工作原理 | 分散式賬本、共識、挖礦 ….

    7 使用 web3 程式庫在HTML/CSS/Javascript中為去中心化應用程式開發UI/前端

    8 在以太坊平台上開發端到端的去中心化應用程式(DAPP)。

    9 建立私有的以太坊網路進行開發和實驗

    10 識別並使用正確的設計模式來開發智慧合約

    11 在以太坊平台上架構、設計和建立真正的使用案例


    https://softnshare.com/ethereum-dapp/

  • web3架構 在 Taipei Ethereum Meetup Facebook 的最讚貼文

    2021-02-04 14:57:33
    有 8 人按讚

    📜 [專欄新文章] 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.

    👏 歡迎轉載分享鼓掌

  • web3架構 在 Taipei Ethereum Meetup Facebook 的精選貼文

    2018-09-24 00:50:34
    有 18 人按讚


    📜 [專欄新文章] 0xDonate — An Ethereum donate service for streamers
    ✍️ Alvin Hou
    📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium

    給實況主的區塊鏈斗內服務

    透過 Ethereum Smart Contract,讓觀眾可以一鍵斗內給實況主,並讓斗內訊息在實況中即時推播出來的小服務

    0x Donate

    前言

    現在的實況主大多是透過PayPal、歐付寶等第三方支付來接受觀眾斗內。但如果實況主不想被抽手續費,或想讓觀眾直接斗內加密貨幣給他呢?直接留下錢包地址是一個方法,但誰斗了多少很難即時查看也缺乏跟觀眾的互動。

    因為最近剛好有點閒時間,所以就寫了個網站,透過智能合約讓實況主也能跟斗內的乾爹們互動。

    How it works

    網站的架構相當簡單,只要有一個錢包地址就可以開始使用了。實況主輸入錢包地址就產生對應的3個連結

    1. Donate Page

    就如同傳統的第三方支付,實況主將斗內連結放在個人的介紹頁面中,觀眾直接透過那個連結捐款。填完想說的話和金額,按下按鈕使用 Metamask 送出交易就完成了。
    以Twitch為範例
    2. Notification Page

    這個頁面會監聽合約上的event,當有人斗內時就會跳出斗內訊息、斗內人名稱和金額。實況主只須於OBS Browser source把這個連結設定好即可。

    3. History Page

    誰是最大乾爹? link
    不免俗的每個實況主都有他的Top donation list,這個頁面會把鏈上的斗內紀錄抓下來彙整成一個排行榜,讓實況主輕鬆看出誰是最大乾爹,乾爹們也不用擔心自己的心意不會被看到,都已經寫在鏈上了。

    Features

    0 fee, 0 setup, only a 0x address required

    0 fee

    對比現在第三方支付,本服務不抽手續費。以歐付寶為例,如果有人信用卡斗內十元,就有高達五元會被抽走。而0xDonate只需送出交易的人負擔交易本身gas費用,實況主可以獲得全額捐款。

    0 setup

    不需要註冊,不需要綁定任何API Key。不論是Twitch、Youtube Gaming 或是其他平台都能夠使用。

    0x address

    有一個錢包地址就可以開始使用了!

    The Contract

    其實合約本身也蠻簡單的(?),目前是部屬在Ropsten Testnet上。

    donate 負責將ETH轉到實況主的地址,並觸發NewDonation ,讓斗內資訊可以在實況中顯示出來。而為了省gas,合約並沒有將斗內訊息的內容寫到鏈上。

    getDonation 查看鏈上的紀錄,以用來產生乾爹排行榜。

    一些開發上的雜談

    在半年前於Reddit上看到類似的服務 NanoTwit.ch,就有想說來玩玩看一個ETH版本的。最早的prototype是之前寫的 SimpleEth,一個一鍵打交易的jQuery插件。雖然拖了很久我猜市面上已經有類似的服務了,不過秉持著『頂著幹,做中學』的精神,還是把這個專案寫完了。

    都2018年了寫網頁怎麼能不用框架呢?

    平常寫前端沒什麼在用框架,這次嘗試看看用快過氣的React 把半成品 ETH-Stream-Donations 包得更現代化些。過程中要特別感謝 @wingemerald 提供技術上的支援。但不得不說React跟一些雜七雜八的dependency真是肥大,有時候webpack跑一跑小筆電的風扇就轉起來了。

    開發上有遇到一些小阻礙,一個是web3的雷,為了要支援火狐所以就換了版本。另一個是新版本web3為了要監聽合約的Event必須要使用 Websocket Provider,就改成使用infura的ws節點。

    其他都還算順利,畢竟合約部屬好前端包一包就差不多完工了,資料都在鏈上不用處理後台也是挺方便的。

    結語

    很多人說區塊鏈是不是過譽了,但我相信Ethereum健康的開發者社群,總是會有些新的點子生出一些有趣的DApp或應用出來。

    雖然是個寫好玩的 side project,但歡迎不論是有在實況或是有興趣的朋友都去玩玩看,在測試鏈上人人都可以當乾爹!

    網址: 0xdonate.io

    CryoliteZ/0xDonate

    0xDonate — An Ethereum donate service for streamers was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

    👏 歡迎轉載分享鼓掌

你可能也想看看

搜尋相關網站