📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
同時也有69部Youtube影片,追蹤數超過371的網紅starringsarahchang,也在其Youtube影片中提到,飛利浦抗敏清淨除濕機DE5205是功夫家庭的秘密武器 Our Kungfu family has a secret weapon to share with you all— 幫助我們日常打怪而且全年無休! It helps us fight monsters daily and does not ...
「more efficiency」的推薦目錄:
more efficiency 在 IELTS Nguyễn Huyền Facebook 的最讚貼文
TỪ VỰNG IELTS CHỦ ĐỀ ARTIFICIAL INTELLIGENCE
- help eradicate war, disease & poverty: giúp xóa bỏ chiến tranh, bệnh tật và nghèo đói
- help us make better diagnoses: giúp chúng ta chẩn đoán tốt hơn
- find new ways to cure cancer: tìm cách mới để chữa ung thư
- be a huge benefit to society: là một lợi ích to lớn cho xã hội
- enhance our efficiency: nâng cao hiệu quả làm việc của chúng ta
- do tedious tasks → allow us to do the more interpersonal and creative aspect of work: thực hiện các nhiệm vụ tẻ nhạt → cho phép chúng ta thực hiện công việc thuộc các khía cạnh cá nhân và sáng tạo hơn
- mundane tasks (answering emails) → will be done by intelligent assistants: những nhiệm vụ nhàm chán, mang tính lặp đi lặp lại (trả lời email) → sẽ được thực hiện bởi các trợ lý thông minh
- smart homes → reduce energy usage + provide better security: nhà thông minh → giảm sử dụng năng lượng + cung cấp bảo mật tốt hơn
- get better health care: có được chăm sóc sức khỏe tốt hơn
- be capable of performing tasks → would once have required intensive human labour: có khả năng thực hiện các nhiệm vụ → đã từng đòi hỏi nhiều sức người
- perform complex functions (facial recognition): thực hiện các chức năng phức tạp (nhận dạng khuôn mặt)
- perform intensive human labour & backbreaking tasks: thực hiện công việc chuyên sâu của con người và các công việc nặng nhọc
- reduce the workload of humans: giảm khối lượng công việc của con người
- make more precise predictions about extreme events: đưa ra dự đoán chính xác hơn về các sự kiện khắc nghiệt
- observe & analyse increasing complex climate data: quan sát và phân tích dữ liệu khí hậu ngày càng phức tạp
- have an increased understanding of the effects and reasons for climate change: hiểu biết nhiều hơn về tác động và lý do của biến đổi khí hậu
- cause great harm: gây tác hại lớn
- become a threat to human survival: trở thành mối đe dọa cho sự sống còn của con người
- unlikely to exhibit human emotions (love or hate): không thể biểu lộ cảm xúc của con người (yêu hay ghét)
- might become a risk: có thể trở thành một sự rủi ro
- be programmed to do s.th devastating: được lập trình để làm những công việc mang tính tàn phá
- autonomous weapons → are programmed to kill: vũ khí tự trị → được lập trình để tiêu diệt
- in the hands of … → cause mass casualties: vào tay của … → gây thương vong hàng loạt
- an AI arms race/ an AI war: một cuộc chạy đua vũ trang AI/ một cuộc chiến AI
- have the potential to become more intelligent than any human: có tiềm năng trở nên thông minh hơn bất kỳ con người nào
- have no surefire way of predicting how it will behave: không có cách nào chắc chắn để dự đoán nó sẽ hành xử như thế nào
- be a threat to our existence: là mối đe dọa cho sự tồn tại của chúng ta
- result in massive harm: dẫn đến tác hại lớn
- get hacked: bị hack
- track and analyse an individual’s every move online: theo dõi và phân tích mọi hành động của một cá nhân trên mạng
- be used for dangerous & malicious purposes: bị sử dụng cho mục đích nguy hiểm và độc hại
- create untended & unforeseen consequences: tạo ra những hậu quả không lường trước được
- be the end of humanity: là sự kết thúc của nhân loại
- take over the planet completely & permanently: chiếm đoạt hành tinh hoàn toàn & vĩnh viễn
- be abused by terrorist groups: bị lạm dụng bởi các nhóm khủng bố
- the misuse of AI: sự lạm dụng AI
https://ielts-nguyenhuyen.com/tu-vung-ielts-chu-de-artificial-intelligence/
more efficiency 在 Facebook 的最讚貼文
Stay protected while giving yourself the freedom to breathe, @safetyware_group premium 3-ply disposable face mask is gentle on skin, hypoallergenic and high Breathability. To offer you extra comfort, adjustable nose strip and flat elastic ear loop keep the mask securely in place.
The mask outer layer is made of hydrophobic non woven polypropylene which provide good fluid splashes resistance while maintaining good breathability. The inner soft non woven polypropylene layer is hydrophilic which absorb droplets from the wearer effectively and makes the masks comfortable to wear.
- compliance with ASTM Level 2 standard
- compliance with EN 14683-2019 Type IIR standard
- BFE & PFE > 99.9%
- UV Sanitized before packing
- Made with premium quality Meltblown filter which offers high Bacterial Filtration Efficiency (BFE) of ≥ 99%.
Now you can have more options for your kids! Animal themed children face mask from Safetyware with high breathability for ultimate comfort while keeping them safe. Check out the 6 animal-themed designs - rabbit, panda, fox, squirrel, monkey and bear in one box.Packing: 50pcs /box.
Visit Safetyware's E-shop:
https://shop.safetyware.com.my/discount/SHUEANN15
Promocode:SHUEANN15
Code valid for storewide discount, minimum purchase RM25, free shipping above RM100.
more efficiency 在 starringsarahchang Youtube 的最佳解答
飛利浦抗敏清淨除濕機DE5205是功夫家庭的秘密武器
Our Kungfu family has a secret weapon to share with you all—
幫助我們日常打怪而且全年無休!
It helps us fight monsters daily and does not rest!
平時忙著導演編劇工作,武術指導,戲劇學校營運的功夫家庭,健康是最重要的大事,空氣品質尤其重視!一向以 teamwork 方式共同承擔家務的我們:功夫爸爸負責清水箱,功夫媽媽負責清洗濾網,空氣清淨指數則交給 Kali看就行了(看著飛利浦先生身上的圈圈,都要blue才是好空氣歐,其他顏色都no no)
For our Kungfu family, usually busy with acting, directing, screenwriting, teaching martial arts, and running an actor’s studio, health is the most important thing; and air quality is at the top of that list! As a martial arts family, we always do everything as a team: Kungfu poppa is responsible for the cleaning the water tank, Kungfu Momma is responsible for cleaning the filter, and the air purification index is left to Kali. (She checks out the circle on Mr. Philips: blue is clean air and other colors are a no-no!)
自從用了飛利浦 #DE5205 (諧音我愛你我)一台搞定3件事,多功能的原廠設定 #抗敏 #清淨 #除濕 好簡單! 大幅改善生活品質,讓住在山區的我們超級仰賴它!有了二寶之後,家裡的溼度和空氣品質真的要注意,我們更把 #飛利浦抗敏清淨除濕機 帶去月子中心再帶回來,根本是生活中的 Must啊!推薦所有有寶寶的家庭可以入手一台!(兩台也可以!)
Ever since we used Philips #DE5205 (the model number is Chinese homonym for I love you and me together), it simplifies everything, it’s multi-functional factory settings are 3 in 1. #preventsmold #purifiestheair #dehumidifies Living in the mountains, it totally transformed our or life and we rely on it so much! After having the second baby, we really need to be more cautious, we even took #Phillips to the postpartum center and then brought it back. It definitely is a must-have in our household! It is highly recommended that you get one (or two) if you have babies!
用影片及文字幫大家整理一下 #DE5205的優勢,請看!
Check our video to learn about the advantages of #DE5205.
高濾除、高效能、高安全 It’s high-filtration, high-efficiency, high-safety
1. 奈米級0.02濾淨力:抗敏級HEPA濾網,德國IUTA認證可有效濾除至最小PM0.02細懸浮粒子,提升空氣品質
Nano-level 0.02 Filtration: Anti-allergic HEPA filter, German IUTA certified, which can effectively filter down to the smallest PM0.02 fine suspended particles, and improves air quality
2. 大容量除溼:每日13 公升大除溼力
Large capacity dehumidifier: 13 liters water capacity per day
3. 四種智能模式:舒適濕度/連續除濕/乾衣模式/空氣淨化,按照需求變換功能
Four smart modes: comfortable humidity/continuous dehumidification/drying mode/air purification, changes functions according to needs
4.一級節能標準:節能再退稅 $1,200
Level 1 Energy Conservation Standard: Energy-saving and tax rebate $1,200
功夫爸爸最愛:水箱提把,方便好提不漏水(當作是微量級健身)
Kungfu Poppa’s favorite: the water tank handle, which is convenient and easy to carry and does not leak (as a micro-level fitness)
功夫媽媽最愛:底部滾輪,白天移到遊戲間超方便
Kungfu Momma’s favorite: the bottom scroll wheel is super convenient to move to the game room during the day
功夫大寶最愛:空氣品質燈,因為看到藍燈就是保護了妹妹
Kungfu Big Baby’s favorite: air quality light, because seeing the blue light is to protect her sister
功夫小寶最愛:低噪音運轉,才29分貝耶!讓我可以安心呼呼大睡
Kungfu Little Baby’s favorite: low noise operation, only 29 decibels! So she can sleep peacefully
立即購買還享有兩年全球保固喔
Click the link below to get a free two-year worldwide warranty:
https://reurl.cc/0Dbd7M
如果想到櫃上實際看看的話可以參考以下連結
Or go directly to the store to check it out here:
https://www.store-philips.tw/v2/Shop/StoreList/1956
#Philips #飛利浦 #抗敏清淨除濕機 #DE5205 #三重功效 #抗敏 #清淨 #除濕
more efficiency 在 Shiney Youtube 的最佳貼文
Rage 2 พากย์ไทย แปลไทย
ซื้อเกมได้ที่ https://store.epicgames.com/legendauser/rage-2
Rage 2 (stylized as RⒶGE 2) is first-person shooter video game developed by Avalanche Studios in conjunction with id Software and published by Bethesda Softworks. The game is the sequel to the 2011 game Rage. The game is set to be released for Microsoft Windows, PlayStation 4 and Xbox One on May 14, 2019. It received mixed reviews from critics who praised shooting mechanics, but criticized the cliched plot and generic gameplay.
Rage 2 is a first-person shooter. Players assume control of a ranger named Walker, who is free to explore the game's apocalyptic fiction open world. Players are given control over some of Walker's attributes, such as their gender, skills, or attire. Walker is able to wield various firearms and tools to fight against enemies, including returning weapons such as the wingstick. Players can develop Walker's skills with Nanotrite-based powers. Through a mode called Overdrive, Walker's guns do more damage, enemies drop more energy and they get healed constantly — providing players with an aggressive way to mow down enemies. Nanotrites from the first game, which act as special powers and ability boosts, can also be used to increase combat efficiency. The game also features vehicular combat, including trucks, buggies and gyrocopters, with the player being able to drive any vehicle in the game's world.
more efficiency 在 Shiney Youtube 的最佳貼文
Rage 2 พากย์ไทย แปลไทย
ซื้อเกมได้ที่ https://store.epicgames.com/legendauser/rage-2
Rage 2 (stylized as RⒶGE 2) is first-person shooter video game developed by Avalanche Studios in conjunction with id Software and published by Bethesda Softworks. The game is the sequel to the 2011 game Rage. The game is set to be released for Microsoft Windows, PlayStation 4 and Xbox One on May 14, 2019. It received mixed reviews from critics who praised shooting mechanics, but criticized the cliched plot and generic gameplay.
Rage 2 is a first-person shooter. Players assume control of a ranger named Walker, who is free to explore the game's apocalyptic fiction open world. Players are given control over some of Walker's attributes, such as their gender, skills, or attire. Walker is able to wield various firearms and tools to fight against enemies, including returning weapons such as the wingstick. Players can develop Walker's skills with Nanotrite-based powers. Through a mode called Overdrive, Walker's guns do more damage, enemies drop more energy and they get healed constantly — providing players with an aggressive way to mow down enemies. Nanotrites from the first game, which act as special powers and ability boosts, can also be used to increase combat efficiency. The game also features vehicular combat, including trucks, buggies and gyrocopters, with the player being able to drive any vehicle in the game's world.
more efficiency 在 "more efficient" 和"more efficiently" 的差別在哪裡? | HiNative 的相關結果
more efficient 的同義字This is more efficient. This can be done more efficiently. She is more efficient than him. She works more efficiently ... ... <看更多>
more efficiency 在 談談efficient的中式英文濫用~~^^ - 美語達人Mike劉- udn部落格 的相關結果
批改文章常見到同學動不動就寫efficient,而且傻傻分不清「有效率」和「有效」(effective) 之間的差異, ... That way is more efficient. ... <看更多>
more efficiency 在 with more efficiency - 英中– Linguee词典 的相關結果
大量翻译例句关于"with more efficiency" – 英中词典以及8百万条中文译文例句搜索。 ... <看更多>