了解 Node.js 中的記憶體洩漏問題,文章中有詳細的圖示解釋
🔥 udemy 黑色星期五目前還在特價中
✍ 想學習node.js 可參考 - Node.js,Express,MongoDB 還有更多 – 完整的新手訓練營 2020 (http://bit.ly/2XHIrql)
✍ node.js 進階課程可參考 - Node JS:進階概念教學課程 ( https://bit.ly/3nKdKhA )
https://blog.bitsrc.io/memory-leaks-in-nodejs-54ac7bbd4173
node js教學 在 Taipei Ethereum Meetup Facebook 的最佳解答
📜 [專欄新文章] Solidity Weekly #16
✍️ mingderwang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Expo (React Native) + web3.js 1.0.x 開發手機 dApps
今天要介紹如何利用 Expo,來撰寫手機 dApp。基本上,如果想做到去中心化的 dApp,期望能將 Javascript app 能盡可能的包裹成單一檔案,用去中心化檔案儲存空間,讓手機或網頁直接下載來執行。手機版的 App,也可用 Expo 做到類似的結果,但目前 Expo 還是有點中心化;當然利用 cipherbrowser 或 status.im 等方式開發也行,只要你不怕被 vendor lock-in。
Expo 是一種 MIT license 的開放源始碼,讓 React Native 開發與部屬更為簡單,讓用戶只要先下載 iOS 或 Android 的 Expo clients。就很容易透過 exp://xxx 的 URI 來執行。因為 React Native 跟 web3.js 都是用 Javascript 語言,因此很容易整合。(註:web3.js 也不是唯一連區塊鏈的方法,只是搭配 Remix,能產生 web3 程式片段,所以比較方便)
但由於 React Native 非 100% 與 node.js 相容,因此有些 workarounds 要做,例如 node 內建 standard library 裡的 crypto (註 2),Buffer 等 React Native 就沒有,所以這裏還不是很方便。(喜歡 truffle 的人,也可參考 react-native-box 來做,但也還沒很成熟)
Mobile dApp 有個問題是,你(用戶)沒有 localhost 自己的 node 當成 web3 provider 可以連線到 Ethereum 區塊鏈。所以有幾種選擇,最簡單的就是要再相信某一個 node,這裡用 infura (與 Metamask 同一家公司),也許還要搭配其他方法,讓這 dApp 不要依賴任何 server 也能運作。但如果要用到 HDWallet,還是要用 truffle-hdwallet-provider 來當 web3 provider,也能同時避開沒有 crypto 的問題。
使用 Expo 開發畫面
註 1:直接用 React Native 開發,不容易除錯,且速度慢。所以建議程式邏輯可以考慮用 React Native for Web 在 CodeSandbox.io 先做開發和測試,最後再搬到 Expo 的 React Native 裡。(或直接在 codesandbox.io 開發 Expo 程式也行)
CodeSandbox
註 2:例如當在 Expo 的環境裡使用到 web3.eth.accounts.create() 時,會出現以下 error,但其他地方(Condsandbox)不會。
解決方法,不要用 web3 provider 改用 truffle-hdwallet-provider (在 React Native 裡要用 Promise.promisifyAll 繞過問題)
var HDWalletProvider = require("truffle-hdwallet-provider"); var mnemonic = "manage velvet tide tube object spin identify neither foot together wagon tip"; var hd = new HDWalletProvider(mnemonic, "https://mainnet.infura.io/"); web3 = new Web3(hd); Promise.promisifyAll(web3.eth); let accounts = await web3.eth.getAccountsAsync();
Solidity Weekly #16 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
node js教學 在 Taipei Ethereum Meetup Facebook 的最佳貼文
📜 [專欄新文章] Solidity Weekly #13
✍️ mingderwang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
哪裡還能用 solidity 寫程式?
大家看過 Solidity Weekly 的人﹐應該都知道 Solidity 是為 Ethereum blockchain 開發出來的一種專門用來寫 Smart Contract (智能合約) 的電腦語言。編譯好的 solidity 程式﹐可以部署到 Ethereum 區塊鏈網路﹐讓其他程式透過 web3.js (for Javascript)、web3.py (for Python)、Nethereum (for C#、.NET、Unity)、或甚至還沒開始夯的 cloud native languages 之一 Ballerina package-ethereum (for Ballerina) 來與之互動。各有個別的開發 frameworks﹐以下我會做一個清單來說明。
但基本上用 Solidity 開發出來的程式﹐只要有 EVM (Ethereum Virtual Machine) 的環境﹐就可以執行。所以想像空間就更大了, 就像 Java 當年想跨平台執行任何程式的夢想﹐如今也開始在區塊鏈(們) 上藉由 Solidity 做到跨區塊鏈也移植 Dapps 的夢想。(其實 Dapps 這個名詞﹐會漸漸不存在﹐因為每種 apps 包括手機程式、應用程式、遊戲軟體﹐甚至付費機制的 widgets、付費廣告、打賞平台、聊天網、早晚都會有連上區塊鏈的需求﹐所以終究每種 app 都是 Dapp。)
TL;DR
相容於 Ethereum 的 EVM 的區塊鏈﹐都可以執行 Solidity 開發出來的程式﹐當然包括用不同語言開發出來的 Ethereum client (node): geth (in Golang)、Parity (in Rust)、以及還在 0.2.0 alpha 的 Trinity (py-evm) (in Python)、cpp-ethereum (for C++)、等等…
所以﹐還有哪些地方可以用 Solidity 寫程式?EOS? (原本以為 EOS.IO 說要支援 Solidity,﹐但看似計畫取消﹐還是要用 C++ 才能撰寫 EOS contracts)
另一個可能性是 eWASM (Ethereum Web Assembly)﹐Web Assembly 支援的 browsers 還蠻多的﹐但 Ethereum 在這方面的還在發展中﹐應該會在 Ethereum 2.0 Roadmap 裡。
最後還有一個 RSK 可以部署 Solidity 程式﹐我還在測試中。感覺很怪, 花 Bitcoin 的錢去執行 gas 會不會太貴﹐有點像在開 Hybridge cars。
開發環境清單:
Javascript
ZeppellinOS、Dapp、Truffle (+ Drizzle)、Embark
Python
Populus
C#, F#, .NET (also for Unity3D)
Nethereum
links 分享;
Unit testing Solidity contracts on Ethereum with Go — (Nathan Murthy)
Nethereum 2.0.0 rc5 — Unity3d integration — (Juan Blanco)﹐Ming> 有興趣開發區塊鏈 3D games 可以參考。
註: 還有沒有列到但值得一提的 EVM 語言或工具﹐大家可以留言…
Solidity Weekly #13 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
node js教學 在 node.js台灣 - Facebook 的推薦與評價
加入問題沒填,真的會被拒絕】 這是一個專門討論node.js的台灣社群,node.js是一個高效能的javascript執行環境,基於google的V8引擎和Evented IO。 ... <看更多>
node js教學 在 [學習之路] Node.js 入門教學 的推薦與評價
注意每個node 版本都是獨立的npm 套件不共用。 USB 免安裝. 因為工作需要不同電腦上執行,因此我習慣用USB 作免安裝環境。因此VScode、GIT、Nodejs ... ... <看更多>