📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
Search