📜 [專欄新文章] Gas Efficient Card Drawing in Solidity
✍️ Ping Chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Assign random numbers as the index of newly minted NFTs
Scenario
The fun of generative art NFT projects depends on randomness. The industry standard is “blind box”, where both the images’ serial number and the NFTs’ index are predetermined but will be shifted randomly when the selling period ends. (They call it “reveal”) This approach effectively solves the randomness issue. However, it also requires buyers to wait until the campaign terminates. What if buyers want to know the exact card right away? We’ll need a reliable onchain card drawing solution.
The creator of Astrogator🐊 isn’t a fan of blind boxes; instead, it thinks unpacking cards right after purchase is more interesting.
Spec
When initializing this NFT contract, the creator will determine the total supply of it. And there will be an iterable function that is randomly picking a number from the remaining pool. The number must be in range and must not collide with any existing ones.
Our top priority is accessibility/gas efficiency. Given that gas cost on Ethereum is damn high nowadays, we need an elegant algorithm to control gas expanse at an acceptable range.
Achieving robust randomness isn’t the primary goal here. We assume there’s no strong financial incentive to cheat, so the RNG isn’t specified. Implementers can bring their own source of randomness that they think is good enough.
Implementation
Overview
The implementation is pretty short and straightforward. Imagine there’s an array that contains all remaining(unsold) cards. When drawIndex() is called, it generates a (uniform) random seed to draw a card from the array, shortens the array, and returns the selected card.
Algorithm
Drawing X cards from a deck with the same X amount of cards is equal to shuffling the deck and dealing them sequentially. It’s not a surprise that our algorithm is similar to random shuffling, and the only difference is turning that classic algo into an interactive version.
A typical random shuffle looks like this: for an array with N elements, you randomly pick a number i in (0,N), swap array[0] and array[i], then choose another number i in (1,N), swap array[1] and array[i], and so on. Eventually, you’ll get a mathematically random array in O(N) time.
So, the concept of our random card dealing is the same. When a user mints a new card, the smart contract picks a number in the array as NFT index, then grabs a number from the tail to fill the vacancy, in order to keep the array continuous.
Tweak
Furthermore, as long as the space of the NFT index is known, we don’t need to declare/initialize an array(which is super gas-intensive). Instead, assume there’s such an array that the n-th element is n, we don’t actually initialize it (so it is an array only contains “0”) until the rule is broken.
For the convenience of explanation, let’s call that mapping cache. If cache[i] is empty, it should be interpreted as i instead of 0. On the other hand, when a number is chosen and used, we’ll need to fill it up with another unused number. An intuitive method is to pick a number from the end of the array, since the length of the array is going to decrease by 1.
By doing so, the gas cost in the worst-case scenario is bound to be constant.
Performance and limitation
Comparing with the normal ascending index NFT minting, our random NFT implementation requires two extra SSTORE and one extra SLOAD, which cost 12600 ~ 27600 (5000+20000+2600) excess gas per token minted.
Theoretically, any instantly generated onchain random number is vulnerable. We can restrict contract interaction to mitigate risk. The mitigation is far from perfect, but it is the tradeoff that we have to accept.
ping.eth
Gas Efficient Card Drawing in Solidity was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有225部Youtube影片,追蹤數超過268萬的網紅Jay Lee Painting,也在其Youtube影片中提到,JayLee - How to paint with acrylic / Painting Techniques --------------------------------------------------- ❖ Channel Membership : Please become a m...
「space art drawing」的推薦目錄:
- 關於space art drawing 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於space art drawing 在 葉雯 Manny Yip Facebook 的精選貼文
- 關於space art drawing 在 忠泰美術館 Jut Art Museum Facebook 的精選貼文
- 關於space art drawing 在 Jay Lee Painting Youtube 的最佳解答
- 關於space art drawing 在 Jay Lee Painting Youtube 的最讚貼文
- 關於space art drawing 在 Jay Lee Painting Youtube 的精選貼文
- 關於space art drawing 在 73 Space ideas | art inspiration, space art, drawings - Pinterest 的評價
- 關於space art drawing 在 outer space drawing的評價和優惠,PINTEREST和商品老實說 ... 的評價
- 關於space art drawing 在 红豆宇文化艺术教育中心Space Art Drawing & Art | Facebook 的評價
space art drawing 在 葉雯 Manny Yip Facebook 的精選貼文
賽馬會「傳.創」非遺教育計劃 Jockey Club ICH+ Innovative Heritage Education Programme
今個星期六!
📣立即報名Enroll now:
https://hkacartshop.store/item/Painting-with-Child-Workshop-%E7%AB%A5%E7%95%AB%E8%B6%B3%E5%8D%B0%E8%A6%AA%E5%AD%90%E5%B7%A5%E4%BD%9C%E5%9D%8A/5605667885940736?cat=all
【童畫足印親子工作坊🦶🏻🎨】
透過色調、筆觸、選材都反映了創作者的想法,你多久沒有執筆繪畫呢?是次工作坊藝術家葉雯將會分享個人創作的藝術經驗, 並誠邀家長與小孩一同以繪畫記錄身體, 創作出獨有的紀念作品,讓繪畫留在當下。
導師簡介: 葉雯 Manny Yip
葉雯⽣於香港,2017年獲墨爾本皇家理⼯⼤學與香港藝術學院合辦之榮譽學⼠,主修繪畫。創作圍繞記憶、童年和⾃我探究過程,以過去與想像建造出⾃有抽象及開放的詮釋空間。2017年獲香港特別⾏政區政府獎學基⾦外展體驗獎,於保加利亞及芝加哥進⾏藝術家駐留計劃,2019年獲藝發局新苗藝術資助展覽《某年某地》,作品先後於香港、美國及東歐展出。葉⽒曾被邀與多個⽂化及商業單位合作聯乘創作,並策劃藝術教育活動。
【Painting with Child Workshop 🦶🏻🎨】
Creation is an innate ability born with, we know drawing before writing, while painting is one of the most primitive ways of creation. The colour, brushstrokes and selection of themes all reflect the artist’s thoughts. How long have you not been painting? In this workshop, Manny will share her personal artistic experience, and sincerely invite participants to record their bodies with children through painting, creating unique artwork.
Tutor introduction:
Manny Yip (Hong Kong) received BAFA at Royal Melbourne Institute of Technology University (co- presented with Hong Kong Art School), major in painting in 2017. Her works capture senses of childhood innocence which are both reflections of her memories and yearnings. The abstraction and openness of the spatial interpretation in her works also speak for themselves. They are not merely an obsession with the past, but also an inviting space for viewers to freely associate with their own memories and imaginations.
She has been awarded the Reaching Out Award (2017) which included artist residency programmes in Bulgaria & Chicago, and Grant for Emerging Artists (2019) from Hong Kong Arts Development Council. Her artworks were collected by private collectors and exhibited in several cities, Hong Kong, United States and Europe. She has also been invited as a selected artist by commercial corporations and as a programme instructor for schools.
_______
📅 25. 09. 2021 (Sat)
⏰ 14:00 - 17:00 (3 hrs)
🏢香港藝術中心10樓香港藝術學院 (灣仔校舍) 1012室
Rm 1012, 10/F Hong Kong Arts Centre, Hong Kong Art School (Wan Chai Campus)
粵語主講 (輔以英文講解) Cantonese (supplemented with English)
📣立即報名Enroll now:
https://hkacartshop.store/....../5605667885940736......
🛎️截止報名日期 Deadline of Registration: 20 .09. 2021 (Mon)賽馬會「傳.創」非遺教育計劃 Jockey Club ICH+ Innovative Heritage Education Programme
space art drawing 在 忠泰美術館 Jut Art Museum Facebook 的精選貼文
國際建築大師─#隈研吾 作品遍布世界各地,不論是小尺度的空間裝置,還是大規模的建築設計,都希望建築能夠呼應當地的文化,並尊重環境。
日本國際傳媒 #NHK_World_Japan 製作了隈研吾建築師的特輯,由建築師本人親自介紹他在世界各地的作品,以及近期正在日本巡迴的展覽《隈研吾展─新公共空間之貓的五大原則 Kuma Kengo: Five Purr-fect Points for a New Public Space》,歡迎點進影片觀看!
想更直接的感受隈研吾建築師的創作思維,不妨預約參觀《場域・啟發―隈研吾展》,就可以現場欣賞唷!
🎬The Kengo Kuma Monologue: My Principles of Architecture - NHK WORLD-JAPAN
https://www.youtube.com/watch?v=qgKO6kaS4Yg
💡預約參觀連結:https://tinybot.cc/jutbooking/
++++++++++++++++
場域・啟發―隈研吾展
Kengo Kuma : Place / Inspiration
2021.07.24 Sat. ~ 09.12 Sun.
展覽地點|明日聚落(台北市大安區建國南路一段65巷9號1樓)
開放時間|週二至週日10:00-18:00(週一休館)
參觀資訊|免費參觀,線上預約制
展覽介紹|http://jam.jutfoundation.org.tw/exhibition/3101
++++++++++++++++
聚變:AA倫敦建築聯盟的前銳時代
Drawing Ambience: Alvin Boyarsky and the Architectural Association
2021.05.08 SAT – 12.05 SUN
展覽地點|忠泰美術館(臺北市大安區市民大道三段178號)
開放時間|週二至週日10:00-18:00(週一休館)
參觀資訊|全票100元、優待票80元(學生、65歲以上長者、10人以上團體);身心障礙者與其陪同者一名、12歲以下兒童免票(優待票及免票須出示相關證件)
展覽介紹│http://jam.jutfoundation.org.tw/exhibition/2946
space art drawing 在 Jay Lee Painting Youtube 的最佳解答
JayLee - How to paint with acrylic / Painting Techniques
---------------------------------------------------
❖ Channel Membership :
Please become a member of my channel. You can buy me a cup of coffee, and push me to create more videos.
---------------------------------------------------
Jay Lee is a painting youtuber. He paints beautiful world on the canvas, and share videos for you and everyone. Put Jay's painting in your space, and make world beautiful.
❖ Jay Lee Store :
https://teespring.com/stores/jayartpainting
❖ Patreon : https://www.patreon.com/jayartpainting
❖ PayPal Donation : paypal.me/jayartpainting
---------------------------------------------------
Jay Lee는 한국인 그림 유튜버 입니다. 캔버스에 그림을 그리고 영상으로 만들어 사람들에게 공유합니다. 최근에 한국인분들 유입이 많아져서 기분이 좋네요. 감사합니다.
여러분의 공간에 Jay의 그림을 놓아 아름답게 만들어보세요.
(亚克力画)
Jay Lee 是住在台灣的韓國人,一位畫畫的YouTuber。在畫布上繪製美麗的世界,並用影片的方式分享給大家。把Jay的畫放在你的空間裡,讓世界更美麗。
❖ Jay Lee Store :
https://teespring.com/stores/jayartpainting
---------------------------------------------------
❖ Music
Meditation Impromptu by Kevin MacLeod
https://creativecommons.org/licenses/by/4.0/
http://incompetech.com/music/royalty-free/index.html?isrc=USUAN1100161
http://incompetech.com/
---------------------------------------------------
❖ Contacts
E-mail : tkstoryman@hotmail.com
........................................................
space art drawing 在 Jay Lee Painting Youtube 的最讚貼文
How to paint with watercolor / Painting Techniques - JayLee -
---------------------------------------------------
❖ Channel Membership :
Please become a member of my channel. You can buy me a cup of coffee, and push me to create more videos.
---------------------------------------------------
Jay Lee is a painting youtuber. He paints beautiful world on the canvas, and share videos for you and everyone. Put Jay's painting in your space, and make world beautiful.
❖ Jay Lee Store :
https://teespring.com/stores/jayartpainting
❖ Patreon : https://www.patreon.com/jayartpainting
❖ PayPal Donation : paypal.me/jayartpainting
---------------------------------------------------
Jay Lee는 한국인 그림 유튜버 입니다. 캔버스에 그림을 그리고 영상으로 만들어 사람들에게 공유합니다. 최근에 한국인분들 유입이 많아져서 기분이 좋네요. 감사합니다.
여러분의 공간에 Jay의 그림을 놓아 아름답게 만들어보세요.
Jay Lee 是住在台灣的韓國人,一位畫畫的YouTuber。在畫布上繪製美麗的世界,並用影片的方式分享給大家。把Jay的畫放在你的空間裡,讓世界更美麗。
❖ Jay Lee Store :
https://teespring.com/stores/jayartpainting
---------------------------------------------------
❖ Music
Love of All - Twin Musicom
---------------------------------------------------
❖ Contacts
E-mail : tkstoryman@hotmail.com
........................................................
space art drawing 在 Jay Lee Painting Youtube 的精選貼文
JayLee - How to paint with acrylic / Painting Techniques
---------------------------------------------------
❖ Channel Membership :
Please become a member of my channel. You can buy me a cup of coffee, and push me to create more videos.
---------------------------------------------------
Jay Lee is a painting youtuber. He paints beautiful world on the canvas, and share videos for you and everyone. Put Jay's painting in your space, and make world beautiful.
❖ Jay Lee Store :
https://teespring.com/stores/jayartpainting
❖ Patreon : https://www.patreon.com/jayartpainting
❖ PayPal Donation : paypal.me/jayartpainting
---------------------------------------------------
Jay Lee는 한국인 그림 유튜버 입니다. 캔버스에 그림을 그리고 영상으로 만들어 사람들에게 공유합니다. 최근에 한국인분들 유입이 많아져서 기분이 좋네요. 감사합니다.
여러분의 공간에 Jay의 그림을 놓아 아름답게 만들어보세요.
(亚克力画)
Jay Lee 是住在台灣的韓國人,一位畫畫的YouTuber。在畫布上繪製美麗的世界,並用影片的方式分享給大家。把Jay的畫放在你的空間裡,讓世界更美麗。
❖ Jay Lee Store :
https://teespring.com/stores/jayartpainting
---------------------------------------------------
❖ Music
Mesmerize - Kevin MacLeod
---------------------------------------------------
❖ Contacts
E-mail : tkstoryman@hotmail.com
........................................................
space art drawing 在 红豆宇文化艺术教育中心Space Art Drawing & Art | Facebook 的推薦與評價
红豆宇文化艺术教育中心Space Art Drawing & Art. Public group. ·. 287 members. Join group. About. Discussion. Featured. Topics. Media. More. ... <看更多>
space art drawing 在 73 Space ideas | art inspiration, space art, drawings - Pinterest 的推薦與評價
Nov 28, 2019 - Explore Maja Topchar's board "space", followed by 110 people on Pinterest. See more ideas about art inspiration, space art, drawings. ... <看更多>
相關內容