📜 [專欄新文章] Scaling Ethereum 參賽心得
✍️ Johnson
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Scaling Ethereum 是一場由 ETHGlobal 所舉辦的線上黑客松,也是我第一次參加與以太坊有關的黑客松活動,這篇文章就來分享一人參賽的過程與心得。
源起
一開始是在 telegram 群組中得知這場比賽的消息,因緣際會之下剛好有人想組隊參賽,於是就在報名截止的前一天一起跟著報名了。
報名的方式除了填一些基本資料外,最特別的是還要 stack 以太幣,也就是要傳送 0.01 顆以太幣給主辦方,規則是必須在比賽的最後,有提交作品的人才能贖回 0.01 顆以太幣,之後看到 meme 頻道有人留言:
When your project is incomplete but you submit to get back stake.
一方面,這確實也會激勵你好好把比賽完成,就算沒做完也要有些成果上去,這也是主辦方秉持的精神,他們認為大家來黑客松相互學習成長,競賽獎金則是其次。
獎金
比賽方式是由 25 個左右的贊助者(sponsor)分別提供獎金,每個 sponsor 都有錄製一段影片,說明怎麼獲得他們的獎金,大部分會要你使用他們開發的工具,或者必須跟 sponsor 在做的研究有關,去實作出創新的作品。可參考:Prizes — Scaling Ethereum
你的專案可以選擇要投入哪個 sponsor 的獎金,一個專案可以投入多個 sponsor 底下,這樣獲獎機會也會比較高。
我選擇的 sponsor 是 zkSync,他們的說明如下:
zkSync is a user-centric zkRollup developed by Matter Labs. It uses zero-knowledge proofs to keep data availability on mainnet to achieve exponentially lower transaction costs. You may have seen us powering projects such as payments and Gitcoin Grants. We are currently rapidly developing zkSync 2.0, which will feature EVM-compatibility in testnet May 2021, soon followed by zkPorter, our new exponential scalability solution.
PrizeszkSync will be awarding their Prizes as follows:
- 1 winner — 4,000 USDC
- 2 winners — 2,000 USDC
- 4 winners — 500 USDC
We encourage builders to utilize zkSync SDK’s, implemented in JavaScript/Typescript and Rust. Prizes will be awarded to projects that make it simpler and easier for non-technical users to use zkSync, other ideas include integrations of current tools such as in Gitcoin Grants and tools for easy mass payments and multi-sigs.
社群互動
這個 hackathon 很棒的地方是他把使用者體驗做的很好。每個人都會有自己的 dashboard 顯示目前專案的進度和一些訊息。
Check-In #1 和 Check-In #2 的階段會要你提供專案的構想,你隨時都可以修改。主辦方會看你提交的資訊,幫助你找到適合的 sponsor,或是給你一些建議,就算是一人參賽也能感受到回饋。
整個賽程期間,社群都是使用 discord 在互動,discord 裡頭有很多頻道,像是基本的大會報告的頻道,或是一些不重要的迷因、閒聊頻道都有。
每個 sponsor 也都有自己的頻道,我就會在 sponsor-zksync 的頻道詢問技術的問題,例如我想問問 zkSync 一些關於專案構想的意見:
Hi there, I want to build a gas fee relayer which make my ERC-20 token transfer without transaction fee, to be more precise, delegating gas payment by another party. I think this is done by GSN https://opengsn.org/ , but maybe it could built on L2 with zkSync? I’m not sure, could somebody give me some advice about this topic?
zkSync 團隊的人回應我:
This is an amazing idea! This can totally be built, as we support batching transactions which can be used for all kinds of creative things such as paying for transaction fees in an erc-20 token. Your idea seems like a combination of that and the gitcoin grants integration. To get started, I suggest you watch the short 10 minute presentation I made on using the SDK and batching. Looking forward to your project!!
在 Check-In #2 的時候,我提交新版的專案構想,有一個欄位是問:「目前專案遇到什麼阻礙?」我的問題應該是被主辦方貼給 zkSync 的團隊,於是 zkSync 的團隊成員就用 discord 私訊我,貼了一些程式碼教我怎麼使用他們的 Javascript SDK,這突如其來的救援也幫了大忙。
除此之外,主辦方每個禮拜都會寄 email 通知一些重要的活動,賽程期間舉辦了四個 Summits 研討會,邀請世界各地有名的以太坊開發者分享議題,主辦方還有一個自己的 TV 網頁,直播所有的線上活動。這些活動都有錄影,可以在 youtube 看到過去所有的演講內容:https://www.youtube.com/c/ETHGlobal/videos
因為我的作品是使用 zkSync 的 Javascript SDK 製作的,好像也只能投稿 zkSync 作為獎金的 sponsor,不過主辦方在最後一個禮拜,也寄 email 告訴我說可以多投稿不同的 sponsors 看看,他依據我的專案構想給我一些適合的 sponsors 作為參考。
不過最後我還是只投稿了 zkSync,有點懶著再看其他 sponsors 的文件,也覺得其他 sponsors 的題目需要花比較大的功夫才能完成,一個人能力有限,就做點簡單的東西就好。
關於我的專案 — Gas Relay Service
在以太坊的世界,每一筆交易都需要額外付一筆交易費,也就是以太坊的 gas fee。
我的專案是讓「收款人」能夠幫「付款人」支付以太坊的手續費。
在黑客松之前,我就想研究「第三方支付手續費」的議題,因此我大部分時間其實都在研究一般的 meta-transactions 是怎麼實作的,有興趣的人可以看看 simple meta-transactions 的原始碼:https://github.com/chnejohnson/simple-meta-transaction
之後我才開始玩 zkSync 的 SDK,並研究怎麼在 Layer 2 實現第三方支付手續費的問題,以下就附上作品連結以及簡單的專案介紹給有興趣的人參考:https://showcase.ethglobal.co/scaling/gas-relay-service-on-zksync
The target is that token sender can choose to find another account to pay for fee. The another account can be (1) the token receiver’s account, (2) sender’s another account, (3) third party’s account.
In this project, I finished the demo, which is the (1) above, that receiver pay gas fee for the sender.
有趣的是,我在研究 meta-transactions 時學到很多智能合約的寫法,結果在最後專案上都沒用到(沒寫到合約的程式),zkSync Javascript SDK 其實很簡單,他們的文件寫得很清楚。最後 Demo 還是用 zkSync 團隊的成品修改來的…XD。
所幸在沒有懂太多技術的前提下完成了這場黑客松的專案,成功贖回了 0.01 顆以太幣。
評審與決選
整個賽程來到最後一個禮拜,主辦方安排兩天的時間進行 Judges,使用 zoom 進行線上研討會,一個人基本上是 7 分鐘,前 4 分鐘播放 Demo 簡報,後三分鐘會有評審問問題。
第一個問題是說:「Demo 中你是使用 zkSync 的錢包網頁去操作,那實際上你做得部分是什麼?」
我就回答我在他們的網頁上加了一顆按鈕,使用他們的 SDK 做出 gas relay 的功能,還有一個後端的 server 去作 relay。
第二個問題大概是問:「什麼樣的情境下會需要由 receiver 幫 sender 支付 gas fee?」
我的回答是,在一般超商購物的情境,消費者通常只支付商品的價格,不會支付額外的交易費,我認為以太坊的手續費應該屬於軟體的營運成本,由賣方支付比較適合。那如果賣方希望手續費的成本是由消費者承擔,可以直接調高商品的價格。
當然,我英文講得零零落落,希望評審有聽懂就是了…
最後一場直播就是 Finale 決選,主辦方選出十二個隊伍,公開再 Demo 一次,以及提供線上觀眾詢問問題,至此整個賽程就差不多進入尾聲。
決選後的不久,主辦方就公布了這次有獲得獎金的隊伍,幸運拿到了 zkSync 頒發的小獎~
zkSync — Matter Labs
- Zeneth — 2000 USDC
- ZeroSwap — 1500 USDC
- Kangaroo — 500 USDC
- Gas Relay Service — 500 USDC
後記
這次的參賽隊伍中,Zeneth 跟我的主題非常相似:
Zeneth — Use Flashbots to enable arbitrary meta-transactions so EOAs can enter L2s without ETH
另一個我覺得有趣的專案是 Alexandria:
Alexandria — A dApp using STARKs to verify aspects of your identity without revealing more than you should
沒想到主辦方 ETHGlobal 下個月又要再舉辦一場黑客松,有興趣的人可以看看:https://defi.ethglobal.co/ ,這次的主題是 De-Fi。
最後,只要有到 ETHGlobal 的 TV 網頁參加 Summit 研討會的直播,就能夠獲得 POAP 勳章,它就是一個酷東西~😋
POAP: Proof of Attendance Protocol
Scaling Ethereum 參賽心得 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有18部Youtube影片,追蹤數超過6,100的網紅Chris Wong Private Kitchen Cooking Channel,也在其Youtube影片中提到,芝麻葉泡菜 Kimchi Perilla Leaf Ingredients: Perilla leaf ----------------------------- 23 Pcs Scallions (Chopped) ------------- 1 Stalk Korean hot pepper...
「stack in c」的推薦目錄:
- 關於stack in c 在 Taipei Ethereum Meetup Facebook 的最讚貼文
- 關於stack in c 在 浩爾譯世界 Facebook 的精選貼文
- 關於stack in c 在 FoodblogCa Facebook 的最讚貼文
- 關於stack in c 在 Chris Wong Private Kitchen Cooking Channel Youtube 的最讚貼文
- 關於stack in c 在 Peggie Neo Youtube 的精選貼文
- 關於stack in c 在 在地上滾的工程師 Nic Youtube 的最佳解答
- 關於stack in c 在 Stack: 以Array與Linked list實作 的評價
- 關於stack in c 在 Newest 'c' Questions - Stack Overflow 的評價
- 關於stack in c 在 Understanding stack frame of function call in C/C++? 的評價
stack in c 在 浩爾譯世界 Facebook 的精選貼文
【每日國際選讀】
#文末挑戰多益選擇題📝
迪士尼出奇招,花木蘭票價900看嗎?
開啟「接收通知」和「搶先看」每天吸收雙語時事新知
來讀華爾街日報獨家
🌺Disney’s Bet on Mulan and the Economics of Streaming
《花木蘭》直接登上Disney+,這部要價近900元的電影能幫迪士尼賺錢嗎?
🏹In the latest pandemic-inspired Hollywood shake-up, Walt Disney Co. on Tuesday said it would offer its live-action remake of “Mulan” for sale Sept. 4 exclusively on its new streaming service, Disney+, at about $30 a pop, instead of in theaters as planned.
華特迪士尼公司4日表示,將於9月4日在其新的串流媒體服務Disney+獨家上線真人翻拍版電影《花木蘭》(Mulan),收費約30美元(約台幣880元),而不是按原計劃在電影院上映。這是新冠疫情引發的最新一項好萊塢變革。
-inspire: 刺激、引發
-remake: 翻拍
-a pop: 一張、一個,意思同 a piece
✍常見用法:tickets at $10 a pop 一張票10美元
🦜Other studios have moved movie premieres online in recent months—winning few friends among theater operators. But none has done so in this particular way, as a premium-priced add-on for streaming customers already paying a monthly fee for otherwise all-you-can-eat entertainment.
近幾個月來,其他電影公司也紛紛將影片首映搬到了網上,這種做法招致影廳營運商不滿。但迪士尼把這部電影作為附加服務提供給串流媒體用戶,且定價不低,這些用戶已經為套餐型娛樂服務支付每月訂閱費,到目前為止,還沒有一家電影公司採用過如此特別的方式在網路首映。
-翻譯技巧:“winning few friends among theater operators”
原句直譯為「在影廳營運商中贏得很少朋友」,太過直覺且不符合中文語境。此時我們可以換另一個角度思考原文想傳達什麼意思,將「贏得很少朋友」轉化為「招致不滿」,兼顧英文原意且更符合中文邏輯。
-premium-priced: 高訂價
✍常見用法:add/pay a premium 支付溢價、加價
🏮For now, though, it’s unclear whether Disney’s move was a one-time response to extenuating circumstances created by a global public-health crisis, as Chief Executive Bob Chapek suggested Tuesday on a conference call with Wall Street analysts, or a sign of things to come.
不過,目前尚不清楚迪士尼此舉是對全球公共衛生危機造成的特殊環境所做的一次性反應,還是未來模式的一個訊號。迪士尼首席執行長Bob Chapek 於4日在與華爾街分析師的電話會議上暗示是前者。
-one-time response: 一時反應
-extenuate: 減輕、緩和
-conference call, con-call: 電話會議
🥇Debuting a $200 million movie on a proprietary, premium video-on-demand service is without precedent, so there’s no clear way to estimate how online sales of Disney’s “Mulan” would stack up against a hypothetical run in theaters.
在專用的優質影片點播服務首映一部製作成本2億美元的電影是史無前例的,因此沒有明確方法來估算,若與假設的影院放映情況相比,《花木蘭》線上銷售情況會如何。
-proprietary: 專用的、專有的
-without precedent: 前無來者、史無前例,同 unprecedented
-stack up:累積、疊高,此處指「推動銷售量」
未完待續⋯⋯⋯
Disney+的用戶願意加價900台幣看電影嗎?
加入文末每日國際選讀計畫,解鎖完整語音導讀版
——
原文連結請看留言
——
❓❓多益模擬題❓:
At $29.99 on Disney+, it would take about 3.3 million ________ to generate $100 million in revenue, which is roughly _____ $200 million at the domestic box office—about average for recent live-action Disney remakes—where ticket sales are split roughly in half between studios and theaters.
🙋🏻♀️🙋🏼♀️
A. interactions / amount to
B. actions / translated to
C. transactions / equal to
-
【每日商業英文計畫,熱烈招生中!】
華爾街日報訂閱超值方案 📰
專屬 #臉書社團,浩爾 #每日語音導讀
「留言+1」,就送你 #優惠碼 及 #導讀試聽!
stack in c 在 FoodblogCa Facebook 的最讚貼文
Can’t find an authentic #carrotcake in Hong Kong - so let’s make one ourselves! 🥕
-
1️⃣Dry ingredients bowl:
250g all-purpose flour +2tsp baking soda +0.5tsp salt +1.5tsp ground cinnamon
2️⃣Wet ingredients bowl:
295ml veg oil +400g sugar +1tsp vanilla extract +4 large eggs🥚
3️⃣Mix 1️⃣+2️⃣ tgt well, then add 300g peeled carrots🥕 +100g coarsely chopped pecans +65g raisins🍇
4️⃣Bake the cake batter for 35-40mins at 176’C, and cool🍰on the rack for 15mins
5️⃣Cheese frosting:
Beat 225g cream cheese🧀(at room temp) +100g sugar +80ml heavy cream tgt until smooth
6️⃣Slice the cake into two layers, spread the frosting in the middle layer & top when stack back up🍰
Top with 50g pecans on top +/- the sides for deco!
-
Credits to @inspiredtaste
https://youtu.be/EJ5AlErxLWY
stack in c 在 Chris Wong Private Kitchen Cooking Channel Youtube 的最讚貼文
芝麻葉泡菜 Kimchi Perilla Leaf
Ingredients:
Perilla leaf ----------------------------- 23 Pcs
Scallions (Chopped) ------------- 1 Stalk
Korean hot pepper flakes ----- 1.5 Tbsp
Korean fish sauce ----------------- 1 Tbsp
Minced garlic ------------------------ 1 Tbsp
Korean soy sauce ----------------- 1/2 Tbsp
Corn syrup ---------------------------- 2 tsp
Sugar ------------------------------------ 2 tsp
Toasted sesame seeds -------- 1 tsp
Minced ginger ---------------------- 1/2 tsp
Red pepper (Chopped) --------- 1/2 Pcs
Korean green pepper (Chopped) - 1/2 Pcs
YouTube: @Chris Wong Private Kitchen Cooking Channel
IG: https://instagram.com/foodblogchriswong
Facebook: https://www.facebook.com/MyPrivateKitchen.Chriswong/
我的C家廚房!Bon Appétit
@Chris Wong Private Kitchen Cooking Channel
Preparation:
1. Stack the perilla leaf up after it is cleaned and dried. Marinate the leaf with Korean fish sauce and Korean soy sauce for 30 minutes until they become softened.
2. Squeeze out and retain the fish sauce and soy sauce from the perilla leaf. Put the perilla leaf in another container.
3. Prepare the marinade by mixing the fish sauce, soy sauce, scallions, Korean hot pepper flakes, minced garlic, corn syrup, sugar, minced ginger, red pepper and Korean green pepper.
4. Apply the marinade onto every alternate perilla leaf.
5. Sprinkle some toasted sesame seeds on the top.
Enjoy! (Age for one day for excellent flavors.)
韓國小菜【芝麻葉泡菜】
材料:-
芝麻葉...............23片
蔥(切碎).............1棵
韓國辣椒粉.........1.5湯匙
韓式魚露.............1湯匙
韓式醬油.............1/2湯匙
蒜蓉.....................1湯匙
粟米糖漿..............2茶匙
糖.........................2 茶匙
已烤白芝麻..........1茶匙
薑蓉.....................1/2 茶匙
紅辣椒(切碎).......1/2隻
青陽辣椒(切碎)...1隻
做法:-
1. 芝麻葉洗淨瀝乾整齊地疊高,加入韓式魚露和韓式醬油醃30分鐘至軟身。
2. 然後用手按壓芝麻葉得出多餘之韓式魚露和韓式醬油放入碗中與蔥碎、韓國辣椒粉、蒜蓉、粟米糖漿、糖、薑蓉、紅辣椒碎和青陽辣椒碎混合成調味醬。
3. 接著每兩片芝麻葉適量地塗上調味醬,最後平均地加入已烤白芝麻在芝麻葉表面便可。(芝麻葉泡菜可即日食用,若時間許的話可放入冰箱讓芝麻葉泡菜熟成一天,味道更佳)
stack in c 在 Peggie Neo Youtube 的精選貼文
Let's eat Shake Shack! Got their Crispy Chicken Sandwich, Shack Stack Cheeseburger, Chicken Nuggets and fries.
► My Merch Store: https://teespring.com/stores/peggie-neo
► Help support my channels on Patreon https://www.patreon.com/peggieneo
► My Eating Channel: https://www.youtube.com/peggieneo
► My Drawing Channel: https://www.youtube.com/c/peggieneoart
#mukbang #burgersandfries
-------------------------------------------------------------------------------------------------
Thank you for watching! Check out more of my eating videos below!
Mukbang eating shows w/ Asmr eating sounds:
FIVE GUYS Feast in LA https://youtu.be/piA9wVFmbxc
Shack Shack Feast in LA https://youtu.be/FJdL1kikkNg
Taco Bell Grilled Cheese Burrito https://youtu.be/AkTHy5zN_so
IN-N-OUT 4x4 Cheeseburger https://youtu.be/rWXB3xkYyjY
stack in c 在 在地上滾的工程師 Nic Youtube 的最佳解答
2020 年回顧,雖然是個疫情擾亂的一年,但仔細回顧還是做了滿多事情的,第一次拍影片和大家分享,剛好那天有夠冷的,打噴嚏打了很久,看起來有點眼睛腫加疲倦,還請多包涵 XD
然後我會在這支影片下方的留言處蒐集 Q&A,如果你有任何問題想問,請依照影片最後的參加方式填寫,將會優先於下期影片做回覆啦
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
🎬 觀看我的生活廢片頻道: https://bit.ly/2Ldfp1B
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
✉️ 合作邀約信箱: niclin0226@gmail.com
#工程師 #前端 #後端 #成長
stack in c 在 Understanding stack frame of function call in C/C++? 的推薦與評價
In addition to what Dirk said, an important use of stack frames is to save previous values of registers so that they can be restored after a function call. ... <看更多>
stack in c 在 Stack: 以Array與Linked list實作 的推薦與評價
在以Array(陣列)實作Stack的程式範例中, class StackArray 的 private data 有三項:. int top :記錄於stack中, ... -1 size: 0. main() 測試的結果與圖二(c)相同: ... ... <看更多>