📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
同時也有13部Youtube影片,追蹤數超過9萬的網紅上坂すみれ YouTube OFFICIAL CHANNEL,也在其Youtube影片中提到,▷2021/9/25配信【#25】 #上坂すみれ 新曲「生活こんきゅーダメディネロ」💸 ついに1コーラス音源を初解禁💥💥 (試聴はコチラ▶︎16:31) #ヒャダイン さん作詞作曲の"王道電波ソング"📡 🎵OA楽曲「ウエサカダイナミック」 http://lnk.to/NEOPROPAGANDA ...
「cd指令」的推薦目錄:
- 關於cd指令 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於cd指令 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於cd指令 在 Facebook 的最讚貼文
- 關於cd指令 在 上坂すみれ YouTube OFFICIAL CHANNEL Youtube 的精選貼文
- 關於cd指令 在 MELOGAPPA Youtube 的最佳解答
- 關於cd指令 在 translation Youtube 的精選貼文
- 關於cd指令 在 [情報] 簡介DOS 指令--cd - 精華區NCHU-AGR98 - 批踢踢實業坊 的評價
- 關於cd指令 在 dos底下cd指令問題 的評價
- 關於cd指令 在 終端機常用指令整理 - Dylan's Blog 的評價
- 關於cd指令 在 簡易terminal教學 的評價
- 關於cd指令 在 二段跳技能詳細解說!居然有CD冷卻?! - YouTube 的評價
cd指令 在 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.
👏 歡迎轉載分享鼓掌
cd指令 在 Facebook 的最讚貼文
【5月書團開團預告】
#5月書單完整書介 #週日十點準時開團
終於把書介整理好,這團書的年齡層從0到9歲都有,從選書到書介花了很久時間,所以不管孩子多大,這團都找的到適合的書,想替書櫃補書的宜友先看書介,這次書團有部份書單是現書,所以有限量,像很多人準備要入手的treehouse就是現書哦。除了以下書介,還有隱藏好書,還有次子指定的任天堂與動物森友會書單,明天開團時還會整理一篇總整理書介,裡面還會有其它還沒分享的好書。(所以我才會寫到變石頭人啊啊)
~~~~~~~~~~~~~~~~~~~~~~~~~~
👉 小孩閱讀英文故事的各階段選書
🔘 Storey Treehouse英語CD讀本
去年入手,同大爺真的是邊看邊笑,這系列讀本他愛到重覆看好多遍,故事CD更是持續一年多,每天都指定要聽,非常推薦。這次新增的是91/104層和117/130層的故事和CD。
書介 https://ioveyi.tw/the-storey-treehouse/
邊看邊笑的同大爺影片 https://pse.is/
🔘 閱讀五階段 Step into Reading
這系列讀本很完整,從準備開始閱讀到獨立自己閱讀,分做五階段,每個階都有不同讀本,從故事、科學到歷史都有。也很建議認識的書單。
書介 https://ioveyi.tw/step-into-reading/
🔘 早期閱讀習慣建立的黃金階段選書-硬頁操作書
雖然這個階段是親子共讀的早期階段,但我覺得這個階段十分重要,通常會建議從硬頁書開始。
書介 https://ioveyi.tw/mr-crocodile/
👉 美到我每一本都想買|Little People Big Dreams 小人物大夢想
🔘 讀繪本版書介 https://ioveyi.tw/little-people/
🔘 硬頁書版 https://ioveyi.tw/little-people-board-books/
👉 適合3-9歲的全包式教材
書介 https://ioveyi.tw/get-ready/
👉遠離3C的好方法-不無聊畫畫遊戲書、貼紙書和指令型找找書
書介 https://ioveyi.tw/dinosaur-play-pad/
👉媽媽小孩一起共讀一起學習的usborne翻翻百科
書介 https://ioveyi.tw/looking-after-our-planet/
👉少見具專業性Little Big Feelings小小孩情緒操作書,有推。
書介 https://ioveyi.tw/little-big-feelings/
👉Baby Encyclopedia 小孩的第一本百科全書
書介 https://ioveyi.tw/baby-encyclopedia/
👉 5月精選繪本
🔘 和孩子討論不是愈多愈好Too Much Stuff!
書介 https://ioveyi.tw/too-much-stuff/
🔘 學校及同儕社交書單
書介 https://ioveyi.tw/be-kind/
👉 同哥說故事,想看影音可以點這裡
See, Touch, Feel ROAR https://youtu.be/ATNe4e0QsTQ
My Crocodile is … Pink and Fluffy https://youtu.be/Ep7wpxf4Xu8
SURPRISE! Slide and Play Shapes https://youtu.be/8aqcl1vGhbE
My First Play & Learn Shop https://youtu.be/t2dRsWZJ3Uc
🔺 超甜滿額禮預告(數量有限贈完為止)
✔2000元滿額禮:單筆訂單滿2000元贈《迪士尼最新有聲CD書 101 Dalmatians Read-Along Storybook and CD》
✔5000元滿額禮:單筆訂單滿5000元贈《The Little Box of Life's Big Lessons》品格套書 (盒裝4本)
可累計,即單張訂單滿5000元則可獲CD書及品格套書,滿額禮請下單後自行加入購物車,訂單內需含預購書才可參加活動。
👉 我的IG發摟起來 https://www.instagram.com/loveyi_w/
👉 我的line@加起來 https://lin.ee/a6c3XmD 或者直接加 @loveyi
(@也要打才找得到我喔)
cd指令 在 上坂すみれ YouTube OFFICIAL CHANNEL Youtube 的精選貼文
▷2021/9/25配信【#25】
#上坂すみれ 新曲「生活こんきゅーダメディネロ」💸
ついに1コーラス音源を初解禁💥💥
(試聴はコチラ▶︎16:31)
#ヒャダイン さん作詞作曲の"王道電波ソング"📡
🎵OA楽曲「ウエサカダイナミック」
http://lnk.to/NEOPROPAGANDA
📣来週10月2日(土)20:00〜は生配信でお届け!
番組公式サイトでは生配信へのメールも募集中です✉️
#上坂すみれのおまえがねるまで
声優アーティスト・上坂すみれがパーソナリティをつとめ、
好きなことを語ったり、遊んだりする自由なトーク番組です♡
毎週土曜日22時〜配信!
#上坂すみれおまねる で拡散&Tweetしてくださいね!
▶︎番組公式サイト
http://king-cr.jp/artist/uesakasumire/omaneru/
▶︎番組へのお便りはこちら
https://king-cr.jp/artist/uesakasumire/omaneru/form/
▶︎コーナー紹介
「しゃべるぽんぽこりんヨーロピアン(ふつおた)」
へんな名前ですが、ふつおたのコーナです!
番組の感想や、すみぺへの報告・相談・質問などなどお送りください!
「土曜日の同志達へ」
土曜日の同志達=おまねるリスナーの皆さまにすみぺから指令が!
その指令は“すみぺあるある”を送ること!
同志の皆さまが勝手に思うすみぺあるあるを募集してそれが“あるある”か“なしなし”かをすみぺが判定します!
<例>
「すみぺのお家のお風呂は金の猫アシ」
「ちょっとのすり傷・切り傷には焼酎をぶっかける」
「床屋さんのくるくる回るやつを見てロシアを思い出す」
などなど、豊かな発想で“すみぺあるある”をお送りください!
※同志への指令は定期的に変更する可能性アリ!
「夜中にポテチととんこつラーメン」
夜中にポテチととんこつラーメンを食すこと…
それは至高ながらも、後悔の止まない行いである…!
同志の皆さんの後悔をなくすために怒るのが苦手なすみぺが一生懸命怒ってみます!
皆さんの“ごめんなさい”なできごとを募集して、すみぺが「コラ」と怒ってみるコーナーです!
ごめんなさいなできごとをお送りください!
▶︎チャンネル登録
https://www.youtube.com/c/uesakasumire/
上坂すみれ公式HP:http://king-cr.jp/artist/uesakasumire/
上坂すみれ公式Twitter:https://twitter.com/uesaka_official
上坂すみれ公式Instagram:https://www.instagram.com/uesaka_sumire/
ーーーーーーーーーー
●information●
・12thシングル「生活こんきゅーダメディネロ」10月27日(水)発売💸
<初回限定盤>
[CD+Blu-ray] KICM-92105 価格:¥1,980(税抜価格 ¥1,800)
【CD】
01.「生活こんきゅーダメディネロ」
作詞/作曲:前山田健一 編曲:藤原燈太
★TVアニメ『#ジャヒー様はくじけない!』第2クールオープニング主題歌
02.「ものどもの宴」
作詞:上坂すみれ 作曲:BOUNCEBACK 編曲:日比野裕史×渡辺徹
★YouTube番組「上坂すみれのおまえがねるまで」テーマソング
03.「ドロップス」
作詞:上坂すみれ 作曲/編曲:山下洋介
04-06.各off vocal ver.収録
【Blu-ray】
「生活こんきゅーダメディネロ」Music Video
超絶ながながメイキング~汝、私のがんばりを見よ~
上坂すみれのおまえがねるまで 天才!!極貧すごろく編
<期間限定アニメ盤>
[CD Only] KICM-92106 価格:¥1,430(税抜価格 ¥1,300)
※キャラクターデザイン・仲敷沙織描き下ろしジャケット仕様
CD:初回限定盤と同内容
<通常盤>
[CD Only] KICM-2105 定価:¥1,430(税抜価格 ¥1,300)
CD:初回限定盤と同内容
・「上坂すみれのPROPAGANDA CITY 2021」開催🎪
日程:2021年10月30日(土)、10月31日(日)
会場:舞浜アンフィシアター
★プレイガイド先行受付中
http://king-cr.jp/artist/uesakasumire/live/propagandacity2021/
・オフィシャルファンクラブイベント開催決定🐱
日程:2021年12月25日(土)
会場:神奈川・関内ホール
・11thシングル「EASY LOVE」配信中🦩
sumire-uesaka.lnk.to/11thSG_EASYLOVE
cd指令 在 MELOGAPPA Youtube 的最佳解答
MELOGAPPAの視聴者参加型PR部隊「ガッパ隊」第四弾作戦を発表します!!
目指すは全国制覇!!47都道府県のラジオでMELOGAPPAの曲を流したい!!
ラジオでMELOGAPPAの曲が聴けた!!という感動を皆さんと共有したい!!
この作戦に参加した時点であなたもガッパ隊の一員です!!ぜひご参加ください!!
【指令】
日本全国のラジオ局にMELOGAPPAの楽曲をリクエストしよう!!
【リクエスト可能楽曲】
・サンドウィッチマンのメンバーの名前だけでオリジナル曲つくってみた(https://youtu.be/G_eO4c_M78M)
・CMソングのフレーズだけでオリジナル曲つくってみた《Part3》(https://youtu.be/3nKgzyC_4C8)
・CMソングのフレーズだけでオリジナル曲つくってみた《Part4》(10月1日MV公開)
【作戦期間】
2021年9月1(水)〜2021年10月31日(日)
【補足】
ラジオでMELOGAPPAの曲が流れたらTwitterのDMでラジオ局と番組名の報告をお願いします。
1回でもOAされたらその都道府県は制覇!!とします。
東京都と大阪府については対象6局のうち3局でOAされたら制覇!!とします。
全国放送の場合はキー局のみを制覇!!とします。
他県のラジオ局にリクエストするのも可です。
【対象ラジオ局】
【北海道】
AIR-G' https://www.air-g.co.jp/message/
FMノースウェーブ https://www.fmnorth.co.jp/program/
北海道放送 https://www.hbc.co.jp/radio/
STVラジオ https://www.stv.jp/radio/index.html
【青森県】
FM青森 https://www.afb.co.jp/program/index.html
青森放送 https://www.rab.co.jp/radio_form/
【岩手県】
FM岩手 https://www.fmii.co.jp/
IBC岩手放送 https://www.ibc.co.jp/radio/
【宮城県】
Date fm https://771.fm/sys_rqtform/index.aspx
東北放送 http://www.tbc-sendai.co.jp/02radio/index.html
【秋田県】
FM秋田 https://www.fm-akita.co.jp/request-message/
秋田放送 https://www.akita-abs.co.jp/radio/
【山形県】
FM山形 http://www.rfm.co.jp/
山形放送 http://www.ybc.co.jp/radio/req/
【福島県】
ふくしまFM https://www.fmf.co.jp/
ラジオ福島 http://www.rfc.jp/index.php
【千葉県】
bayfm78 https://www.bayfm.co.jp/
【埼玉県】
NACK5 https://www.nack5.co.jp/
【東京都】
Tokyo FM https://www.tfm.co.jp/
J-WAVE https://www.j-wave.co.jp/
InterFM897 https://www.interfm.co.jp/
TBSラジオ https://www.tbsradio.jp/
文化放送 https://www.joqr.co.jp/
ニッポン放送 https://www.1242.com/
【神奈川県】
FMヨコハマ https://www1.fmyokohama.co.jp/sv/request/1
ラジオ日本 http://www.jorf.co.jp/
【山梨県】
FM FUJI https://www.fmfuji.jp/mail.php?cd=510
山梨放送 https://www.ybs.jp/timetable/radio/
【群馬県】
FMGUNMA https://www.fmgunma.com/fmg863/req_all/
【栃木県】
RADIO BERRY https://www.berry.co.jp/message/
栃木放送 http://www.crt-radio.co.jp/message/
【茨城県】
LuckyFM茨城放送 https://lucky-ibaraki.com/request/
【新潟県】
FM-NIIGATA https://www.fmniigata.com/
新潟放送 https://www.ohbsn.com/system/form/radio-request/
【長野県】
FM長野 http://www.fmnagano.co.jp/
信越放送 https://sbc21.co.jp/blogwp/radio/
【静岡県】
K-mix https://www.k-mix.co.jp/
静岡放送 https://www.at-s.com/apps/entryform/entry/form/148665
【富山県】
FMとやま http://www.fmtoyama.co.jp/program/request.html
北日本放送 https://www.knb.ne.jp/inquiry/
【石川県】
FM石川 https://hellofive.jp/message/
北陸放送 https://www.mro.co.jp/radio/
【福井県】
FM福井 https://www.fmfukui.jp/docs/
福井放送 https://www.fbc.jp/radio/
【愛知県】
FM AICHI https://fma.co.jp/f/request/
ZIP-FM https://zip-fm.co.jp/access/message/
東海ラジオ放送 https://www.tokairadio.co.jp/dragons/
CBCラジオ https://hicbc.com/radio/
【岐阜県】
FM GIFU https://www.fmgifu.com/request/
岐阜放送 https://www.zf-web.com/radio/contact.html
【三重県】
FM三重 https://fmmie.jp/
【滋賀県】
FM滋賀 https://www.e-radio.co.jp/request/
【京都府】
α-STATION https://fm-kyoto.jp/message/
KBS京都 https://www.kbs-kyoto.co.jp/program/radio.htm
【大阪府】
FM OSAKA https://www.fmosaka.net/request
FM 802 https://funky802.com/
FM COCOLO https://cocolo.jp/
MBSラジオ https://www.mbs1179.com/
朝日放送ラジオhttps://www.abc1008.com/
ラジオ大阪 http://www.obc1314.co.jp/message_all.html
【奈良県】
ならどっとFM http://narafm.jp/
【兵庫県】
Kiss FM KOBE https://www.kiss-fm.co.jp/requestmessage/
ラジオ関西 https://jocr.jp/
【島根県】
FM山陰 https://secure.fm-sanin.co.jp/ssl/request/
【鳥取県】
山陰放送 https://www.bss.jp/radio/
【和歌山県】
和歌山放送 https://www.wbs.co.jp/request.html
【岡山県】
FM岡山 http://www.fm-okayama.co.jp/request_m/
RSK山陽放送 https://www.rsk.co.jp/radio/
【広島県】
広島FM https://hfm.jp/tops/request/
中国放送 https://radio.rcc.jp/
【山口県】
FM山口 http://www.fmy.co.jp/
山口放送 https://kry.co.jp/outline/inquire/radio_form.html
【香川県】
FM香川 https://www.fmkagawa.co.jp/message
西日本放送 https://www.rnc.co.jp/inquiry/radio/
【愛媛県】
FM愛媛 https://www.joeufm.co.jp/request/
南海放送 https://www.rnb.co.jp/radio/
【徳島県】
FM徳島 https://www.fm807.jp/
四国放送 https://www.jrt.co.jp/radio/
【高知県】
FM高知 http://www.fmkochi.com/regular/rqst_msg.html
高知放送 https://www.rkc-kochi.co.jp/radio/
【福岡県】
FM FUKUOKA https://fmfukuoka.co.jp/message/?m=reform
cross fm https://www.crossfm.co.jp/request/w_index.php
LOVE FM https://lovefm.co.jp/
九州朝日放送 https://kbc.co.jp/radio/
RKB毎日放送 https://rkb.jp/radio_top/
【佐賀県】
FM佐賀 http://www.fmsaga.co.jp/request/
【長崎県】
FM長崎 https://www.fmnagasaki.co.jp/request/
長崎放送 https://www.nbc-nagasaki.co.jp/radio/request/
【熊本県】
エフエム・クマモト https://fmk.fm/request/
熊本放送 https://rkk.jp/radio/
【大分県】
FM大分 http://www.fmoita.co.jp/
大分放送 https://1098.am/
【宮崎県】
JOY FM http://www.joyfm.co.jp/request/
宮崎放送 https://mrt.jp/radio/
【鹿児島県】
ミューエフエム https://www.myufm.jp/program_list/
南日本放送 https://www.mbc.co.jp/radio/
【沖縄県】
FM Okinawa https://www.fmokinawa.co.jp/
琉球放送 https://www.rbc.co.jp/radio_top/
ラジオ沖縄 https://www.rokinawa.co.jp/
■Twitter
https://twitter.com/melogappa
https://twitter.com/MELOGAPPA_staff
■MELOGAPPA SHOP
https://melogappa.base.shop/
■公式ファンクラブアプリ「URAGAPPA」
https://fanicon.net/fancommunities/3314
1:33~ 作戦内容!!
3:24~ 目標!!
4:47~ 詳細!!
7:19~ 出陣!!
#MELOGAPPA
cd指令 在 translation Youtube 的精選貼文
#ブレイングレイが発売した、88用RPG作('88年)からの68移植版。
主な変更点としては、グラフィックの多色描き直し等。
BGMはopn版をベースに、opmdrv上にて編曲された。
Manufacturer: 1989.03.01 BrainGrey
System: X68000 series
Hardware: YM2151,MSM6258
Music driver: OPMDRV.X 1.00
--------------------------------------------------------------------------------------------------------------
00:00 01.オープニング 1
02:03 02.オープニング 2
04:05 03.オープニング 3
06:14 04.オープニング 4
08:21 05.コマンド
09:54 06.キャラクター
11:35 07.昼の移動のテーマ
12:57 08.108の石板
14:27 09.エイリアン
17:05 10.バスクの樹
19:26 11.戦闘のテーマI部
20:45 13.コールドスリープルーム
22:31 14.ダイアリー
24:19 15.CDルーム
25:24 16.IDカード
26:41 17.夜の移動のテーマ
28:35 18.スペースシップ
30:13 19.コントロールルーム
32:33 20.指令官室のテーマ
36:00 21.ガルマの部屋
36:45 22.魔界
38:40 23.サルバン
40:44 24.戻らずの塔
42:25 25.鍵の部屋
43:39 26.氷河期
47:00 27.ノアの箱船
48:57 28.ナポレオン
51:00 29.ヒットラー
52:48 30.1999年
54:41 31.想像
56:01 32.滅亡
57:49 33.モンスターフュージョン
58:23 34.モンスターバイブル
01:00:58 35.コマンドII
01:02:17 36.昼の移動のテーマII
01:04:07 37.転移機のテーマ
01:04:59 38.石板製作所
01:06:09 39.石板製作室
01:07:48 40.109個目の石板
01:09:18 41.夜の移動のテーマII
01:11:55 42.ファンタジーランドショップ
01:13:33 43.戦士たちとの戦い
01:15:34 44.戦士たちとの戦い *Type B
01:17:35 45.メディカルセンター
01:19:06 46.サルバンII
01:20:45 47.王の城
01:23:15 48.王の部屋
01:24:57 49.コンピュータールーム
01:26:43 50.戦闘のテーマII
01:28:16 51.指令塔
01:30:15 52.愛と優しさ
01:32:22 53.エンディング 1
01:35:43 54.エンディング 2
-------------------------------------------------------------
cd指令 在 dos底下cd指令問題 的推薦與評價
dos底下cd指令問題- 想請教有無大神知道,如何cd到可攜式裝置底下?基礎磁碟機cd C:沒問題但可攜式裝置沒有代號,該如何操作呢? ... <看更多>
cd指令 在 終端機常用指令整理 - Dylan's Blog 的推薦與評價
cd. 切換到 file 資料夾(絕對路徑). 1, $ cd /file. 切換到 project 資料夾(相對路徑). 1, $ cd project. 往上一層資料夾. 1, $ cd . ... <看更多>
cd指令 在 [情報] 簡介DOS 指令--cd - 精華區NCHU-AGR98 - 批踢踢實業坊 的推薦與評價
標題都寫「簡介」了,就真的只是簡單介紹一下
如果各位高手們覺得有什麼地方需要補充,就麻煩你們了
《cd》
這個 cd 和光碟沒有半點關係,只是同名同姓而已。
如果你在命令提示字元或是 MS-DOS 裡問電腦 cd 這個指令是做啥的(輸入cd/?),
電腦會同你說:「你說cd?它啊~~是用來"顯示目前工作目錄的名稱或是變更目錄"。」
老實說,它這樣寫我還真看不懂 cd 是在做啥的。汗( ̄▽ ̄)|||
所以我們就別管電腦的講解,直接來看 cd 的工作情形吧!
假設 C 槽底下有 AAA 和 BBB 兩個資料夾( MS-DOS 裡叫資料夾為"目錄),
現在要將焦點從 AAA 資料夾移到 BBB 資料夾。
C:\AAA> 現在焦點在 AAA 目錄(資料夾)
(請按空白鍵到下一頁)
C:\AAA>cd.. 輸入 cd.. 移到上一層目錄
(請按空白鍵到下一頁)
C:\AAA>cd..
C:\> 回到上一層
(請按空白鍵到下一頁)
C:\AAA>cd..
C:\>cd bbb 輸入 cd bbb 命令電腦將目標移至 BBB 目錄
不用管大小寫
(請按空白鍵到下一頁)
C:\AAA>cd..
C:\>cd bbb
C:\BBB> 這樣就跑到 BBB 目錄啦
由此可以得知 回到上一層目錄 cd..
到某個目錄 cd 目錄名稱
如果你要去的目錄與現在的所在位置相隔遙遠,上一層下一層地跑來跑去很麻煩
那就在 cd 後面輸入目錄的路徑。例如:到windows底下的system32底下的config目錄
C:\>cd c:\windows\systme32\config
--
我達達的馬蹄聲是美麗的錯誤
我不是歸人,我是馬││
─┼┼
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.132.177
... <看更多>