📜 [專欄新文章] Optimistic Rollup 就這樣用(2)
✍️ Juin Chiu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
ERC721 的儲值、轉移與提領
TL;DR
本文會跳過 Optimistic Rollup 的介紹而直接實際演示,關於 Optimistic Rollup 的概念與設計原理筆者將在日後另撰文說明,有興趣的讀者可以先參考下列三篇文章(由淺入深):1. OVM Deep Dive 2. (Almost) Everything you need to know about Optimistic Rollup 3. How does Optimism’s Rollup really work?
本文將演示一個 Optimism Rollup 的 ERC721 範例,程式碼在這裡。
本演示大量參考了以下範例:Optimistic Rollup Example: ERC20。
本演示所使用的 ERC721 Gateway 合約來自這個提案,目前尚未成為官方標準。
環境設置
Git
Node.js
Yarn
Docker
Docker-compose
筆者沒有碰到環境相容問題,但是建議都升到最新版本, Node.js 使用 v16.1.0 或以上版本
Optimism 服務啟動
有關 Optimisim 的所有服務,都包裝在 Optimism 這個超大專案當中了,直接使用原始碼進行組建:
$ git clone git@github.com:ethereum-optimism/optimism.git$ cd optimism$ yarn$ yarn build
組建完成後,就可以在本機啟動服務了:
$ cd ops$ docker-compose build$ docker-compose up
這個指令會啟動數個服務,包括:
L1 Ethereum Node (EVM)
L2 Ethereum Node (OVM)
Batch Submitter
Data Transport Layer
Deployer
Relayer
Verifier
Deployer 服務中的一個參數要特別注意: FRAUD_PROOF_WINDOW_SECONDS,這個就是 OPtimistic Rollup 的挑戰期,代表使用者出金(Withdraw)需等候的時長。在本篇演示中預設為 0 秒。
如果有需要重啟,記得把整個 Docker Volume 也清乾淨,例如: docker-compose down -v
Optimism 整合測試
在繼續接下來的演示之前,我們需要先確認 Optimism 是否有順利啟動,特別是 Relayer 是否運作正常,因此我們需要先進行整合測試:
$ cd optimism/integration-tests$ yarn build:integration$ yarn test:integration
確保 L1 <--> L2 Communication 相關測試通過後再繼續執行接下來的演示內容。
啟動服務及部署合約需要花費一些時間,運行一段時間(約 120 秒)之後再執行測試,如果測試結果全部皆為 Fail,可能是 Optimism 尚未啟動完成,再等待一段時間即可。
ERC721 合約部署
Optimism 啟動成功並且完成整合測試後,接下來進行 ERC721 合約的部署。筆者已將合約及部署腳本放在 optimistic-rollup-example-erc721 這個專案中:
$ git clone git@github.com:ethereum-optimism/optimistic-rollup-example-erc721.git$ cd optimistic-rollup-example-erc721$ yarn install$ yarn compile
接下來我們需要部署以下合約:
ERC721,部署於 L1
L2DepositedEERC721,部署於 L2
OVM_L1ERC721Gateway,部署於 L1
OVM_L1ERC721Gateway 只部署在 L1 上,顧名思義它就是 L1 <=> L2 的「門戶」,提供 Deposit / Withdraw 兩個基本功能,使用者必須透過這個合約來進出 L2。
雖然 OVM_L1ERC20Gateway 是 Optimistic Rollup 官方提供的合約。但是開發者也可以依需求自行設計自己的「門戶」。
OVM_L1ERC20Gateway 目前沒有 Optimism 的官方實作,本演示所使用的 ERC721 Gateway 合約來自這個提案,目前尚未成為官方標準。
接下來,我們直接用腳本進行部署:
$ node ./deploy.jsDeploying L1 ERC721...L1 ERC2721 Contract Address: 0xFD471836031dc5108809D173A067e8486B9047A3Deploying L2 ERC721...L2 ERC721 Contract Address: 0x09635F643e140090A9A8Dcd712eD6285858ceBefDeploying L1 ERC721 Gateway...L1 ERC721 Gateway Contract Address: 0xcbEAF3BDe82155F56486Fb5a1072cb8baAf547ccInitializing L2 ERC721...
ERC721 鑄造、儲值、轉移與提領
鑄造(L1)
初始狀態如下,所有帳戶皆尚未持有任何代幣:
接下來,我們將鑄造 2 個代幣以進行接下來的演示。首先,進入 ETH(L1) 的 Console:
$ npx hardhat console --network ethWelcome to Node.js v16.1.0.Type ".help" for more information.>
取得 Deployer / User 帳戶:
// In Hardhat ETH Console
> let accounts = await ethers.getSigners()
> let deployer = accounts[0]
> let user = accounts[1]
取得 ERC721 及 OVM_L1ERC721Gateway 合約物件,合約地址可以從部署訊息中取得:
// In Hardhat ETH Console
> let ERC721_abi = await artifacts.readArtifact("ExampleToken").then(c => c.abi)
> let ERC721 = new ethers.Contract("0xFD471836031dc5108809D173A067e8486B9047A3", ERC721_abi)
> let Gateway_abi = await artifacts.readArtifact("OVM_L1ERC721Gateway").then(c => c.abi)
> let Gateway = new ethers.Contract("0xcbEAF3BDe82155F56486Fb5a1072cb8baAf547cc", Gateway_abi)
鑄造兩個 ERC721 代幣:
// In Hardhat ETH Console
> await ERC721.connect(deployer).mintToken(deployer.address, "foo")
{ hash: "...", ...}
> await ERC721.connect(deployer).mintToken(deployer.address, "bar")
{ hash: "...", ...}
只有合約的 Owner(deployer) 可以進行鑄造的操作。
確認 Deployer 餘額:
> await ERC721.connect(deployer).balanceOf(deployer.address)
BigNumber { _hex: '0x02', _isBigNumber: true } // 2
確認代幣的 TokenID 與 Owner:
> await ERC721.connect(deployer).ownerOf(1)
'0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' // deployer
> await ERC721.connect(deployer).ownerOf(2)
'0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' // deployer
儲值(L1 => L2)
完成以上步驟後,目前的狀態如下:
接下來,授權 OVM_L1ERC721Gateway使用 TokenID 為 2 的代幣:
// In Hardhat ETH Console
> await ERC721.connect(deployer).approve("0xcbEAF3BDe82155F56486Fb5a1072cb8baAf547cc", 2)
{ hash: "...", ...}
在 OVM_L1ERC721Gateway 合約呼叫 Deposit,儲值 TokenID 為 2 的代幣:
// In Hardhat ETH Console
> await Gateway.connect(deployer).deposit(2)
{ hash: "...", ...}
我們可以到 Optimism (L2) 的 Console 確認入金是否成功:
$ npx hardhat console --network optimismWelcome to Node.js v16.1.0.Type ".help" for more information.>
取得 Deployer / User 帳戶:
// In Hardhat Optimism Console
> let accounts = await ethers.getSigners()
> let deployer = accounts[0]
> let user = accounts[1]
取得 L2DepositedERC721 合約物件,合約地址可以從部署訊息中取得:
// In Hardhat Optimism Console
> let L2ERC721_abi = await artifacts.readArtifact("OVM_L2DepositedERC721").then(c => c.abi)
> let L2DepositedERC721 = new ethers.Contract("0x09635F643e140090A9A8Dcd712eD6285858ceBef", L2ERC721_abi)
確認入金是否成功:
// In Hardhat Optimism Console
> await L2DepositedERC721.connect(deployer).balanceOf(deployer.address)
BigNumber { _hex: '0x01', _isBigNumber: true } // 1
> await L2DepositedERC721.connect(deployer).ownerOf(2)
'0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' // deployer
ERC721 轉移(L2 <=> L2)
完成以上步驟後,目前的狀態如下:
接下來,我們在 L2 從 Deployer 轉移代幣給 User:
// In Hardhat Optimism Console
> await L2DepositedERC721.connect(user).balanceOf(user.address)
BigNumber { _hex: '0x00', _isBigNumber: true } // 0
> await L2DepositedERC721.connect(deployer).transferFrom(depoyer.address, user.address, 2)
{ hash: "..." ...}
> await L2DepositedERC721.connect(user).balanceOf(user.address)
BigNumber { _hex: '0x01', _isBigNumber: true } // 1
> await L2DepositedERC721.connect(user).ownerOf(2)
'0x70997970C51812dc3A010C7d01b50e0d17dc79C8' // user
ERC721 提領(L2 => L1)
完成以上步驟後,目前的狀態如下:
接下來,我們用 User 帳戶提領資金,在 L2DepositedERC721 合約呼叫 Withdraw:
// In Hardhat Optimism Console
> await L2DepositedERC721.connect(user).withdraw(2)
{ hash: "..." ...}
> await L2DepositedERC721.connect(user).balanceOf(user.address)
BigNumber { _hex: '0x00', _isBigNumber: true }
最後,檢查在 L1 是否提領成功:
// In Hardhat ETH Console
> await ERC721.connect(user).balanceOf(user.address)
BigNumber { _hex: '0x01', _isBigNumber: true } // 1
> await ERC721.connect(deployer).balanceOf(deployer.address)
BigNumber { _hex: '0x01', _isBigNumber: true } // 1
> await ERC721.connect(user).ownerOf(2)
'0x70997970C51812dc3A010C7d01b50e0d17dc79C8' // user
由於挑戰期為 0 秒,因此提領幾乎無需等待時間,頂多只需數秒鐘
做完上述所有操作,最終狀態應該如下:
總結
本文演示了:
Optimistic Rollup 相關服務的本機部署
ERC721 L1 => L2 的儲值(Deposit)
ERC721 L2 帳戶之間轉移(Transfer)
ERC721 L2 => L1 的提領(Withdraw)
筆者未來將繼續擴充此系列的教學內容,例如支援其他標準的合約如 ERC1155,以及如何運行 Optimistic Rollup 生態系中最重要的驗證者(Verifier),敬請期待。
參考資料
OVM Deep Dive
(Almost) Everything you need to know about Optimistic Rollup
How does Optimism’s Rollup really work?
Optimistic Rollup Official Documentation
Ethers Documentation (v5)
Optimistic Rollup Example: ERC20(Github)
Optimism (Github)
optimism-tutorial (Github)
l1-l2-deposit-withdrawal (Github)
Proof-of-concept ERC721 Bridge Implementation (Github)
Optimistic Rollup 就這樣用(2) was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有320部Youtube影片,追蹤數超過202萬的網紅Marioverehrer,也在其Youtube影片中提到,♫ Original Video: https://youtu.be/JxWSOnTL1JM ► Learn piano songs quick and easy: http://tinyurl.com/flowkey-marioverehrer1 * ► Submit Your Music: ht...
「network tutorial」的推薦目錄:
- 關於network tutorial 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於network tutorial 在 Taipei Ethereum Meetup Facebook 的最讚貼文
- 關於network tutorial 在 BorntoDev Facebook 的最讚貼文
- 關於network tutorial 在 Marioverehrer Youtube 的精選貼文
- 關於network tutorial 在 Untyped 對啊我是工程師 Youtube 的最讚貼文
- 關於network tutorial 在 Ray Mak Youtube 的最佳解答
network tutorial 在 Taipei Ethereum Meetup Facebook 的最讚貼文
📜 [專欄新文章] Optimistic Rollup 就這樣用(1)
✍️ Juin Chiu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
ERC20 的入金、轉帳與出金
TL;DR
本文會跳過 Optimistic Rollup 的介紹而直接實際演示,關於 Optimistic Rollup 的概念與設計原理我將在日後另撰文說明,有興趣的讀者可以先參考下列三篇文章(由淺入深):1. OVM Deep Dive 2. (Almost) Everything you need to know about Optimistic Rollup 3. How does Optimism’s Rollup really work?
本文將演示一個 Optimism Rollup 範例,程式碼在這裡。
本演示大量參考了以下這兩個官方範例:optimism-tutorial、l1-l2-deposit-withdrawal。
環境設置
Git
Node.js
Yarn
Docker
Docker-compose
筆者沒有碰到環境相容問題,但是建議都升到最新版本, Node.js 使用 v16.1.0 或以上版本
Optimism 服務啟動
有關 Optimisim 的所有服務,都包裝在 Optimism 這個超大專案當中了,直接使用原始碼進行組建:
$ git clone git@github.com:ethereum-optimism/optimism.git$ cd optimism$ yarn$ yarn build
組建完成後,就可以在本機啟動服務了:
$ cd ops$ docker-compose build$ docker-compose up
這個指令會啟動數個服務,包括:
L1 Ethereum Node (EVM)
L2 Ethereum Node (OVM)
Batch Submitter
Data Transport Layer
Deployer
Relayer
Verifier
Deployer 服務中的一個參數要特別注意: FRAUD_PROOF_WINDOW_SECONDS,這個就是 Optimistic Rollup 的挑戰期,代表使用者出金(Withdraw)需等候的時長。在本篇演示中預設為 0 秒。
如果有需要重啟,記得把整個 Docker Volume 也清乾淨,例如: docker-compose down -v
Optimism 整合測試
在繼續接下來的演示之前,我們需要先確認 Optimism 是否有順利啟動,特別是 Relayer 是否運作正常,因此我們需要先進行整合測試:
$ cd optimism/integration-tests$ yarn build:integration$ yarn test:integration
確保 L1 <--> L2 Communication 相關測試通過後再繼續執行接下來的演示內容。
啟動服務及部署合約需要花費一些時間,運行一段時間(約 120 秒)之後再執行測試,如果測試結果全部皆為 Fail,可能是 Optimism 尚未啟動完成,再等待一段時間即可。
ERC20 合約部署
Optimism 啟動成功並且完成整合測試後,接下來進行 ERC20 合約的部署。筆者已將合約及部署腳本放在 optimistic-rollup-example-erc20 這個專案中:
$ git clone git@github.com:ethereum-optimism/optimistic-rollup-example-erc20.git$ cd optimistic-rollup-example-erc20$ yarn install$ yarn compile
接下來我們需要部署以下合約:
ERC20,部署於 L1
L2DepositedEERC20,部署於 L2
OVM_L1ERC20Gateway,部署於 L1
其中,ERC20 與 L2DepositedERC20 是由上面的範例專案編譯的,可以直接在範例專案中直接取得 ABI;而 OVM_L1ERC20Gateway 則是由 Optimism 編譯的,屬於 Optimistic Rollup 協定的一部分,無法直接在範例專案中取得 ABI。
因此在部署以上三個合約前,我們需先手動將 OVM_L1ERC20Gateway 編譯後的生成品 (Artifacts)——即 ABI,複製到此專案中:
$ cp -r ~/projects/optimism/packages/contracts/artifacts/contracts/optimistic-ethereum/OVM/bridge/tokens/OVM_L1ERC20Gateway.sol ~/projects/optimistic-rollup-example-erc20/artifacts/contracts/
OVM_L1ERC20Gateway 只部署在 L1 上,顧名思義它就是 L1 <=> L2 的「門戶」,提供 Deposit / Withdraw 兩個基本功能,使用者必須透過這個合約來進出 L2。
雖然 OVM_L1ERC20Gateway 是 Optimistic Rollup 官方提供的合約。但是開發者也可以依需求自行設計自己的「門戶」。
接下來,我們直接用腳本進行部署:
$ node ./deploy.jsDeploying L1 ERC20...Deploying L1 ERC20...L1 ERC20 Contract Address: 0x1429859428C0aBc9C2C47C8Ee9FBaf82cFA0F20fDeploying L2 ERC20...L2 ERC20 Contract Address: 0x67d269191c92Caf3cD7723F116c85e6E9bf55933Deploying L1 ERC20 Gateway...L1 ERC20 Gateway Contract Address: 0xB0D4afd8879eD9F52b28595d31B441D079B2Ca07Initializing L2 ERC20...
ERC20 入金、轉帳與出金
ERC20 入金(L1 => L2)
目前餘額:
在合約部署完成後,Deployer 是目前唯一有資金的帳戶,接下來我們就進行入金(Deposit),將 Deployer 的資金從 L1 搬到 L2。
首先,進入 ETH(L1) 的 Console:
$ npx hardhat console --network ethWelcome to Node.js v16.1.0.Type ".help" for more information.>
取得 Deployer / User 帳戶:
// In Hardhat ETH Console
> let accounts = await ethers.getSigners()> let deployer = accounts[0]> let user = accounts[1]
取得 ERC20 及 OVM_L1ERC20Gateway 合約物件,合約地址可以從部署訊息中取得:
// In Hardhat ETH Console
> let ERC20_abi = await artifacts.readArtifact("ERC20").then(c => c.abi)> let ERC20 = new ethers.Contract("0x1429859428C0aBc9C2C47C8Ee9FBaf82cFA0F20f", ERC20_abi)> let Gateway_abi = await artifacts.readArtifact("OVM_L1ERC20Gateway").then(c => c.abi)> let Gateway = new ethers.Contract("0xB0D4afd8879eD9F52b28595d31B441D079B2Ca07", Gateway_abi)
先授權 OVM_L1ERC20Gateway 花費 ERC20:
// In Hardhat ETH Console
> await ERC20.connect(deployer).approve("0xB0D4afd8879eD9F52b28595d31B441D079B2Ca07", 10000)> await ERC20.connect(user).approve("0xB0D4afd8879eD9F52b28595d31B441D079B2Ca07", 10000)
注意:Deployer 及 User 都需要對 OVM_L1ERC20Gateway 進行授權,否則在接下來的出金步驟時 Relayer 會出錯
接著,在 OVM_L1ERC20Gateway 合約呼叫 Deposit:
// In Hardhat ETH Console
> await Gateway.connect(deployer).deposit(1000)
我們可以到 Optimism (L2) 的 Console 確認入金是否成功:
$ npx hardhat console --network optimismWelcome to Node.js v16.1.0.Type ".help" for more information.>
取得 Deployer / User 帳戶:
// In Hardhat Optimism Console
> let accounts = await ethers.getSigners()> let deployer = accounts[0]> let user = accounts[1]
取得 L2DepositedERC20 合約物件,合約地址可以從部署訊息中取得:
// In Hardhat Optimism Console
> let L2ERC20_abi = await artifacts.readArtifact("L2DepositedERC20").then(c => c.abi)> let L2DepositedERC20 = new ethers.Contract("0x67d269191c92Caf3cD7723F116c85e6E9bf55933", L2ERC20_abi)
確認入金是否成功:
// In Hardhat Optimism Console
> await L2DepositedERC20.connect(deployer).balanceOf(deployer.address)BigNumber { _hex: '0x03E8', _isBigNumber: true } // 1000
ERC20 轉帳(L2 <=> L2)
完成以上步驟後,目前的餘額如下:
接下來,我們在 L2 從 Deployer 轉移一部分資金給 User:
// In Hardhat Optimism Console
> await L2DepositedERC20.connect(user).balanceOf(user.address)BigNumber { _hex: '0x00', _isBigNumber: true } // 0> await L2DepositedERC20.connect(deployer).transfer(user.address, 1000){ hash: "..." ...}> await L2DepositedERC20.connect(wallet_1).balanceOf(user.address)BigNumber { _hex: '0x03E8', _isBigNumber: true } // 1000
ERC20 出金(L2 => L1)
完成以上步驟後,目前的餘額如下:
接下來,我們用 User 帳戶提領資金,在 L2DepositedERC20 合約呼叫 Withdraw:
// In Hardhat Optimism Console
> await L2DepositedERC20.connect(user).withdraw(1000){ hash: "..." ...}> await L2DepositedERC20.connect(user).balanceOf(user.address)BigNumber { _hex: '0x00', _isBigNumber: true }
最後,檢查在 L1 是否提領成功:
// In Hardhat ETH Console
> await ERC20.connect(user).balanceOf(user.address)BigNumber { _hex: '0x03E8', _isBigNumber: true } // 1000
由於挑戰期為 0 秒,因此提領幾乎無需等待時間,頂多只需數秒鐘
做完上述所有操作,餘額應該如下:
總結
本文演示了:
Optimistic Rollup 相關服務的本機部署
ERC20 L1 => L2 的入金(Deposit)
ERC20 L2 帳戶之間轉帳(Transfer)
ERC20 L2 => L1 的出金(Withdraw)
筆者未來將繼續擴充此系列的教學內容,例如 ERC721 / ERC1155 的使用方式,敬請期待。
參考資料
OVM Deep Dive
(Almost) Everything you need to know about Optimistic Rollup
How does Optimism’s Rollup really work?
Optimistic Rollup Official Documentation
Ethers Documentation (v5)
Optimism (Github)
optimism-tutorial (Github)
l1-l2-deposit-withdrawal (Github)
Optimistic Rollup 就這樣用(1) was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
network tutorial 在 BorntoDev Facebook 的最讚貼文
🔥 "วันนี้แอดจะมาแนะนำ 7 Cloud Server เด็ด ประจำปี 2020 ที่เราควรรู้จัก !!"
.
การจะทำงานอะไรซักอย่างในสมัยนี้อย่างน้อยๆก็ต้องมีเซิร์ฟเวอร์ที่เป็นศูนย์กลางในการทำงาน
.
ซึ่งตัวเลือกนอกจากการตั้งเซิร์ฟเวอร์เองแล้วก็ยังมี Cloud Server ที่เป็นตัวเลือกให้เราใช้งานกัน ✨
.
โดย Cloud Server นั้นเป็นการจำลองเซิร์ฟเวอร์เสมือนมาให้เราใช้งาน โดยที่เครื่องเซิร์ฟเวอร์จริงๆอาจจะมีมากกว่า 1 เครื่องและตั้งอยู่คนละสถานที่
.
แต่นำเอา Service ต่างๆมาจัดสรรร่วมกันและให้บริการกับผู้ใช้งาน วันนี้เราลองมาดูกันว่า Cloud Server ที่น่าสนใจในปี 2020 นี้มีอะไรบ้าง
.
1. Microsoft Azure
.
บริการ Cloud จาก Microsoft ที่มีบริการย่อยให้เราได้เลือกใช้เป็นจำนวนมาก ครอบคลุมการใช้งานแทบทุกด้าน เรียกได้ว่าถ้าอยากได้บริการ Cloud Server ที่ครบๆก็ลองดูที่ Azure กันได้
.
โดยมีบริการหลักๆทั้งด้าน AI + Machine Learning, Blockchain, DevOps, Internet of Things, Storage, Web และบริการอื่นๆอีกกว่า 200 บริการ
.
👑 ข้อดี
.
มี service จำนวนมากให้ใช้บริการ
รองรับเครื่องมือและโปรแกรมเก่าๆของ Microsoft
รองรับการใช้งานระดับองค์กรได้เป็นอย่างดี
.
✋🏼 ข้อสังเกต
.
คู่มือหรือเอกสารการใช้งานสำหรับผู้ใช้ทั่วไปอาจจะเข้าใจได้ยาก
🌏 Server Location
.
Americas
Europe
Asia Pacific
Middle East and Africa
อย่างในบ้านเราใกล้สุดก็คงเป็น Server ที่สิงคโปร์
.
🏷️ ราคา
.
Free account จะได้ $200 ฟรีสำหรับทดลองใช้บริการอะไรก็ได้ภายใน 30 วัน
มี service ที่ใช้งานได้ฟรีตลอด เช่น App Service, Azure Kubernetes Service (AKS), DevTest Labs
Service ที่ใช้ฟรี 1 ปี เช่น Linux Virtual Machines, Windows Virtual Machines, SQL Database
บริการอื่นๆมีค่าใช้จ่ายตาม Service ที่จะเลือกใช้งาน หลายๆตัวมีให้ทดลองใช้ฟรีได้
.
2. Amazon Web Services (AWS)
.
แพลตฟอร์มที่ให้บริการ Cloud มาเป็นเวลานาน ด้วยบริการที่หลากหลายและครอบคลุมกว่า 175 บริการ เช่นด้าน Analytic, Blockchain, Game, Internet of Things, Machine Learning. Quantum Technology
.
👑 ข้อดี
.
มี Server กระจายอยู่ที่ต่างๆครอบคลุมมากที่สุด
Document และ Tutorial ต่างๆมีอยู่เป็นจำนวนจากการให้บริการมาเป็นเวลานาน ผู้ใช้จำนวนมากและมีการพัฒนาอย่างต่อเนื่อง
.
✋🏼 ข้อสังเกต
.
ยังรอบรับการให้บริการแบบ Hybrid Server ไม่ครบถ้วน ทำให้การย้ายจากระบบเก่ามาใช้ของ AWS อาจจะใช้เวลานาน
.
🌏 Server Location
.
North America
Sout America
Europe/Middle East/Africa
Asia Pacific
ใกล้สุดอยู่ที่สิงคโปร์
.
🏷️ ราคา
.
สำหรับบัญชีฟรีมีบริการให้ใช้บริการได้เป็นจำนวนมาก บริการฟรีแบบถาวร เช่น Amazon DynamoDB, AWS Lambda ฟรี 12 เดือน เช่น Amazon EC2, Amazon S3
ราคาในแต่ละบริการนั้นคิดแยกย่อยตามการใช้งานจริง อย่างเช่น EC2 ที่กำหนดสเปคขั้นต่ำที่ในเว็บของ Amazon แนะนำจะอยู่ที่ประมาณ 57.69 USD/เดือน
.
3. Google Cloud Platform
.
สำหรับ Cloud Server ตัวนี้ก็เป็นของ Google ที่เราคุ้นเคยกันเป็นอย่างดี ด้วยการที่เป็นบริษัทขนาดใหญ่อยู่แล้ว ในตอนที่มาให้บริการด้าน Cloud ต่างๆจึงทำให้มีบริการที่หลากหลายไม่แพ้ Azure หรือ AWS
.
👑 ข้อดี
.
มี Document ที่เข้าใจได้ง่ายมากๆ สำหรับผู้เริ่มต้นก็มี Tutorial ให้ลองทำตามได้
ประยุกต์ใช้กับบริการต่างๆของ Google ได้เป็นอย่างดี
ให้บริการด้าน Container ได้เป็นอย่างดี
.
✋🏼 ข้อสังเกต
.
การคิดราคาค่อนข้างซับซ้อน ทำให้อาจเกิดค่าใช้จ่ายมากกว่าที่คิดไว้ได้
.
🌏 Server Location
.
Americas
Europe
Asia Pacific
อยู่ใกล้ที่สุดที่สิงค์โปร์เช่นกัน
.
🏷️ ราคา
.
สำหรับบัญชีผู้ใช้ใหม่จะได้รับเครดิต $300 ฟรี สำหรับใช้งานใน Google Cloud Platform เป็นเวลา 12 เดือน
ค่าบริการของแต่ละบริการคิดตามเวลาใช้งานจริง เช่น Compute Engine ประเภท e2-standard-2 จะมีราคาต่อเดือนประมาณ $60.34
.
4. DigitalOcean
.
เป็นผู้ให้บริการที่มีกลุ่มเป้าหมายเป็นเหล่าพัฒนาที่ออกแบบการใช้งานทั้งหมดเพื่อให้นักพัฒนาสามารถโฟกัสกับงานได้อย่างเต็มที่ ลดเวลาที่ต้องใช้ในการจัดการกับตัว server
.
👑 ข้อดี
.
เป็นมิตรกับนักพัฒนาทั้งขั้นตอนการ Deplay Scale และหน้าตา Control Panel
การคิดราคาของแต่ละบริการเข้าใจได้ง่าย
สามารถ Backup และ Restore เซิร์ฟเวอร์ได้ง่ายมากๆ
.
✋🏼 ข้อสังเกต
.
บริการต่างๆมีจำนวนไม่มาก ไม่ครอบคลุมการใช้งานทุกด้าน
อาจไม่เหมาะกับมือใหม่ เพราะกลุ่มเป้าหมายก็คือเหล่านักพัฒนานั่นเอง
.
🌏 Server Location
.
United States
Netherlands
United Kingdom
Germany
Canada
India
ใกล้ที่สุดคือ Singapore
.
🏷️ ราคา
.
บัญชีผู้ใช้ใหม่ได้รับเครดิต $100 ไว้ใช้งาน
ค่าบริการจะแยกตามกลุ่ม Compute, Database, Storage และตามสเปคของแต่ละอัน เช่นประเภท Comput สเปคต่ำสุดราคาอยู่ที่ $5/เดือน เท่านั้น
.
5. Alibaba Cloud
.
Alibaba เป็นผู้ให้บริการในด้าน Cloud Computing และ AI โดยให้บริการแก่องค์กรและนักพัฒนาจำนวนมากทั่วโลก จนมีส่วนแบ่งทางการตลาดเป็นอัน 3 ของโลก แม้ว่าจะเพิ่งก่อตั้งขึ้นมาไม่นาน
.
👑 ข้อดี
.
เป็นผู้ให้บริการ Cloud ที่ใหญ่ที่สุดในจีน ถ้าหากมีกลุ่มเป้าหมายครอบคลุมถึงผู้ใช้จำนวนมหาศาลในจีน Alibaba Cloud ก็เป็นตัวเลือกที่น่าสนใจมากๆ
มี Server มากที่สุดใน Asia Pacific และยังคงมีกระจายออกไปอยู่ทั่วโลก
หน้าตาเว็บไซต์สามาถใช้งานได้ง่าย
.
✋🏼 ข้อสังเกต
.
การดำเนินการบางอย่างอาจติดข้อจำกัดทางด้านกฎหมายของประเทศจีน
.
🌏 Server Location
.
Mainland China
Asia Pacific
US East
US West
UK
ใกล้ๆไทยก็มี มาเลเซีย และ สิงคโปร์
.
🏷️ ราคา
.
บัญชีผู้ใช้ใหม่จะได้รับเครดิต $450 ไว้ใช้ทดลองใช้งานบริการต่างๆได้มากกว่า 40 บริการภายในเวลา 12 เดือน และมีบริการที่ฟรีตลอดชีพ เช่น Container Service, Auto Scaling, Anti-DDoS Basic
ค่าบริการแบ่งตามกลุ่มและสเปคที่ปรับเลือกได้ของแต่ละบริการตามการใช้งานจริง เช่น Elastic Compute Service สเปคต่ำสุดค่าบริการอยู่ที่ $2.74/เดือน
.
6. Huawei Cloud
.
ผู้ให้บริการด้าน ICT infrastructure ที่ดำเนินการมากว่า 30 ปี ทำให้มีความเชี่ยวชาญและองค์ความรู้ในหลายๆด้านจนมาให้บริการทางด้าน Cloud โดยมีบริการจำนวนมากให้บริการกับลูกค้า โดย Huawei Cloud นั้นนำเสนอจุดเด่นของตัวเองว่าเป็นแพลตฟอร์มสำหรับพัฒนาด้าน AI ที่มีประสิทธิภาพ
.
👑 ข้อดี
.
มี Server ที่อยู่ในไทยทำให้การเชื่อมต่อและเข้าถึงข้อมูลต่างๆทำได้อย่างรวดเร็ว
มีบริการครอบคลุมในหลายด้าน เช่น Compute, Storage, Network, Database, AI
.
✋🏼 ข้อสังเกต
.
ยังมี Server ในฝั่ง Europe และ Americas น้อยเมื่อเทียบกับผู้ให้บริการอื่นอย่าง AWS หรือ Azure
.
🌏 Server Location
.
Hong Kong
Singapore
China
South Africa
Mexico
Brazil
Chile
มีตั้งอยู่ในประเทศไทยด้วย
.
🏷️ ราคา
.
ผู้ใช้ใหม่สามารถใช้บริการหลายอย่างได้ฟรีนาน 12 เดือน เช่น Elastic Cloud Server, Elastic IP, Cloud Backup and Recovery
ค่าบริการคิดตามประเภทบริการและสเปคที่เลือกใช้งาน เช่น Elastic Cloud Server เลือกสเปคต่ำสุดราคาต่อเดือนอยู่ที่ประมาณ $34.64
.
7. IBM Cloud
.
IBM Cloud เป็น Cloud ที่ผู้ใช้สามาถปรับแต่งคหรือตั้งค่าต่างๆได้ละเอียด โดยที่ยังมีการใช้งานที่เป็นมิตรกับผู้ใช้ มีบริการต่างๆครบครบถ้วนในหลายๆด้าน เช่น Compute, Network, Storage, Database, Security, AI, IoT, Blockchain ฯลฯ
.
👑 ข้อดี
.
สามารถปรับแต่งได้เยอะมากๆ
มีเครื่องมือช่วยในการจัดการระบบทำให้ Deplay, Setup หรือ Config ได้อย่างรวดเร็ว
.
✋🏼 ข้อสังเกต
.
จากการที่รองรับการปรับแต่งต่างๆได้ละเอียด สำหรับบางโปรเจคอาจจะทำให้การใช้งานโดยรวมเสร็จได้ช้ากว่าที่ควร
.
🌏 Server Location
.
Asia Pacific
Europe
North America
South America
ใกล้ที่สุดอยู่ที่สิงคโปร์
.
🏷️ ราคา
.
ผู้ใช้ฟรีมีเครดิตให้ใช้งานฟรีได้ $200
บริการที่ใช้งานได้ฟรี 30 วัน เช่น Kubernetes Service, Hyper Protect DBaaS for PostgreSQL
.
ค่าบริการคิดตามประเภทและสเปคของแต่ละบริการเหมือนผู้ให้บริการอื่นๆ เช่น WebSphere Application Server ค่าบริการอยู่ที่ $0.22/ชั่วโมง ประมาณ $158.4/เดือน
.
"จบไปแล้วว กับ 7 Cloud ยอดฮิตประจำปี 2020" หากใครเคยใช้อันไหน อยากแนะนำอันไหนบอกแอดได้เลยย <3
.
#borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
network tutorial 在 Marioverehrer Youtube 的精選貼文
♫ Original Video: https://youtu.be/JxWSOnTL1JM
► Learn piano songs quick and easy: http://tinyurl.com/flowkey-marioverehrer1 *
► Submit Your Music: https://marioverehrer.aidaform.com/contact-form
► iTunes: https://apple.co/2HdMswA
► Spotify: https://spoti.fi/2JqvMVq
► Sheet Music: https://www.musicnotes.com/l/Marioverehrer
► Classical Sheet Music: https://gumroad.com/marioverehrer
► Support me on Patreon: http://www.patreon.com/Marioverehrer
► Facebook: http://www.facebook.com/Marioverehrer2
► Twitter: https://twitter.com/Marioverehrer
* Affiliate Link
Enjoy the song "Giant Woman" from "Steven Universe arranged by MrGermanpiano!
♫ Promote Your Music ♫
To submit your music on my channel:
➝ Send me a message with my contact form: https://marioverehrer.aidaform.com/contact-form
➝ Or write me a message on Facebook: https://www.facebook.com/Marioverehrer2
➝ Always send a link or music file of your work.
➝ If I'm interested, I will message you back.
Composer(s): Rebecca Sugar, Aivi & Surasshu
Arrangement © MrGermanpiano (2021)
Original Music © Cartoon Network (2018)
network tutorial 在 Untyped 對啊我是工程師 Youtube 的最讚貼文
端午節快樂!
六月都過一半了,還沒處理 Google Photos 不再免費支援的這個超頭痛問題嗎?
莫驚莫慌!
身為Google 相簿的瘋狂愛好者重度依賴者,對於 Google Photos這個政策改變,會怎麼處理呢?照片該放去哪呢?
這邊提供三個適合不同人的方法~希望可以幫助到你!
這集會聊到...
💬 Overview 💬
💙 我為什麼那麼愛 Google Photos? 0:12
💙 方法1 - For 有錢的懶人 2:50
💙 方法2 - For 沒錢的懶人 4:30
💙 方法3 - For 自立自強 自生自滅者 7:02
💙 Bonus - For Google 狂愛者 10:15
💙 我會怎麼做? 10:30
🙌🏻 省錢方案 🙌🏻
👍🏻 iDrive 超便宜 雲端儲存空間
https://www.idrive.com/p=untypedcoding
👍🏻 iDrive 天不怕地不怕 超強備份
https://www.idrive.com/bare-metal-recovery?p=untypedcoding
👍🏻 pCloud 超安全 雲端儲存空間
https://partner.pcloud.com/r/46571
👍🏻 免費使用 pCloud Premium 一個月
Gets a Premium account for free for one month
https://www.pcloud.com/welcome-to-pcloud/?discountcode=A3Gr8Jn4dP5sgWCoSlyPUjZV&locationid=1
☁️😶🌫️買小雲😶🌫️☁️
👍🏻 Western Digital My Cloud Home Duo 12TB(6TBx2) 雲端儲存系統
https://shp.ee/itm4d5x
👍🏻 Western Digital My Cloud Home Duo 4TB(2TBx2) 雲端儲存系統
https://shp.ee/8fgmq3j
☁️😶🌫️自己做雲😶🌫️☁️
👍🏻 Synology 群暉 入門 NAS 網路儲存伺服器
https://shp.ee/w2icswx
👍🏻 Synology群暉 4Bay NAS 網路儲存伺服器
https://shp.ee/kejk2j2
👍🏻 Synology 群暉 2Bay NAS 網路儲存伺服器
https://shp.ee/96nyezp
👍🏻 Seagate 希捷 4TB NAS 硬碟 IronWolf
https://shp.ee/mbjxcc7
👍🏻 Seagate 希捷 2TB NAS 硬碟 IronWolf
https://shp.ee/u5e6e2v
📢 📣 📢 本頻道影片內容有輸出成 podcast 📢 📣 📢
可以在各大podcast平台搜尋「Untyped 對啊我是工程師」
請大家多多支持呀!!🙏🏻💁🏻♀️
#RipGooglePhotos #工程師愛拍照
一定要看到影片最後面並且在「YouTube影片下方」按讚留言訂閱分享唷!
【愛屋及烏】
YouTube 👉 https://www.youtube.com/c/Untyped對啊我是工程師
Podcast 👉 https://open.spotify.com/show/3L5GRMXmq1MRsliQt43oi2?si=3zgvfHlETeuGfp9rIvwTdw
Facebook 臉書粉專 👉 https://www.facebook.com/untyped/
Instagram 👉 https://www.instagram.com/untypedcoding/
合作邀約 👉 untypedcoding@gmail.com
-
Untyped 對啊我是工程師 - There are so many data types in the world of computer science, so are the people who write the code. We aim to UNTYPE the stereotype of engineers and of how coding is only for a certain type of people.
凱心琳: 一個喜歡電腦科學邏輯推理,在科技圈努力為性別平等奮鬥的工程師。
【Disclaimer 聲明】
Some links are affiliated.
上面有些連結是回饋連結,如果你透過這些連結購買商品,我可以得到一些小獎勵,但不會影響到你購買的價格,甚至會是更低的價格!謝謝你的支持💕
network tutorial 在 Ray Mak Youtube 的最佳解答
?SHEET MUSIC & Mp3 ▸ http://www.makhonkit.com
?LEARN MY SONGS ▸ https://tinyurl.com/RayMak-flowkey
?Listen on Spotify ▸ https://sptfy.com/raymak
?Listen on Apple Music ▸ https://music.apple.com/sg/artist/ray-mak/1498802526
?Full Song List ▸ http://www.redefiningpiano.com
Talk to me :
? Instagram ▸ http://instagram.com/makhonkit
? Facebook ▸ http://facebook.com/raymakpiano
? Twitter ▸ http://twitter.com/makhonkit
@Justin Bieber @JustinBieberVEVO - Hold On Piano by Ray Mak
Hold On! Get to know me before you start hating =) Love you all.
Played on the Ultimate Yamaha Montage 8 @Yamaha Music Malaysia
OOTD : @Playaz Network
#JustinBieber #HoldOn #YamahaMusicMalaysia