📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
同時也有4部Youtube影片,追蹤數超過2,450的網紅Saphire Wang,也在其Youtube影片中提到,大家好 我是Saphire 是個在倫敦讀服裝設計的台灣留學生 會定期發佈日常生活、餐廳介紹、旅遊心得 歡迎訂閱我的Youtube頻道或是Instagram: kiiesx https://www.instagram.com/kiiesx/ 這次的時裝秀感謝Angus Chiang的邀請 Ins...
「primary industry」的推薦目錄:
- 關於primary industry 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於primary industry 在 Eat with Pal Li - พี่แป๋วพากินเที่ยวสิงคโปร์ฮ่องกง Facebook 的最佳貼文
- 關於primary industry 在 Leng Yein Facebook 的精選貼文
- 關於primary industry 在 Saphire Wang Youtube 的最佳貼文
- 關於primary industry 在 serpentza Youtube 的最佳貼文
- 關於primary industry 在 iamkoo Youtube 的最讚貼文
primary industry 在 Eat with Pal Li - พี่แป๋วพากินเที่ยวสิงคโปร์ฮ่องกง Facebook 的最佳貼文
❗️ #รายงานโควิดวันนี้ (18 พ.ค.)
🇭🇰 [HK] ติดเชื้อใหม่ทั้งหมด +1, ติดในฮ่องกง “ไม่มี”
🇸🇬 [SG] ติดเชื้อใหม่ทั้งหมด +28, ติดในสิงคโปร์ +21
🇹🇭 [TH] ติดเชื้อใหม่ในท้องถิ่น +2,450, เสียชีวิต +35
.
==================
❗️ #ไฮไลท์
==================
🇭🇰 #ฮ่องกง
- พบผู้มีประวัติฉีดวัคซีนโควิดและต่อมาเสียชีวิตเพิ่มอีก 1 ราย
โดยเป็นชายวัย 50 ปี ฉีด SinoVac เข็ม 2 ไปเมื่อ 3 พค ไม่มีอาการป่วยขณะสังเกตอาการหลังฉีด หลังจากนั้น 13 วัน (16 พค) เข้าแอดมิทใน รพ และเสียชีวิต
แพทย์วินิจฉัยเกิดจากโรคหลอดเลือดในสมอง
- เริ่ม 21 พค จัด 7 ประเทศเข้ากลุ่มเสี่ยงสูง (กลุ่ม B ) ได้แก่ อาร์เจนตินา อิตาลี ญี่ปุ่น เคนย่า มาเลเซีย เนเธอร์แลนด์ #สิงคโปร์
ผู้ที่จะเข้าเมืองต้องเป็นพลเมืองฮ่องกง และต้องยื่นผลตรวจแบบ nucleic acid ภายใน 72 ชม ก่อนเดินทาง และต้องกักตัวใน รร ที่รัฐกำหนด 21 วัน หากได้รับวัคซีนแล้ว กักที่ รร 14 วัน + ดูอาการที่บ้าน 7 วัน
.
🇹🇭 #ไทย
- วันนี้ ผู้ติดเชื้อในท้องถิ่นมีจำนวน 2,450 ราย พบในเรือนจำ 680 ราย ตรวจเชิงรุกในชุมชน 347 ราย
.
====================
🕰 #สถานการณ์ประจำวัน
====================
🇭🇰 #ฮ่องกง
- วันนี้ ไม่พบผู้ติดเชื้อในท้องถิ่นติดต่อกันเป็นวันที่ 2 พบเพียงเคสจากต่างประเทศ 1 คน มาจากอินเดีย
- สถานที่ที่ต้องถูกบังคับตรวจตามกฎหมาย >> https://gia.info.gov.hk/general/202105/17/P2021051700780_367709_1_1621253609197.pdf
.
🇸🇬 #สิงคโปร์
- ผู้ติดเชื้อในท้องถิ่น 21 คน #เมื่อวานนี้ เกี่ยวโยงกับเคสเก่า 10 คน ไม่ทราบต้นตอ 11 คน ตัวอย่างเช่น
(1) นักศึกษา National Institute of Education (NIE) และทำงานเป็น part-time private tutor
(2) administrative personnel บริษัท Pacific Law Corporation
(3) พนักงานบริษัท Invade Industry
(4) retail assistant ที่ Alan Photo (Funan Mall)
(5) พนักงานทำความสะอาด บริษัท Clean Hub Facility Pte Ltd อยู่ที่ EuHabitat
(6) เจ้าพนักงานของ Inland Revenue Authority of Singapore
(7) ครู รร Frontier Primary School
(8) นร ของ Singapore Polytechnic
(9) IT engineer บริษัท AbbVie Operations Singapore
(10) full-time National Serviceman
(11-14) คลัสเตอร์สนามบินเทอร์มินัล 3 (4 คน) คือ แม่บ้านต่างด้าวชาวอินโด, แม่บ้านชาวสิงคโปร์, นร รร Fuchun Primary School, aviation security officer บริษัท Certis Cisco
(15-16) คลัสเตอร์ รร Learning Point (2 คน) คือ เด็ก นร รร Maha Bodhi School
(17) คลัสเตอร์ร้าน Wok Hey สาขา White Sands (1 คน)
(18) คลัสเตอร์ดีลเลอร์มารีน่าเบย์แซนด์คาสิโน 1 คน
- ใน 21 คนนี้ ติดเชื้อสายพันธุ์อินเดีย 4 คน ฉีดวัคซีนครบสองเข็มแล้ว 2 คน
=================
💉 #สถิติฉีดวัคซีนโควิด
=================
🇭🇰 #ฮ่องกง
- วันที่ 17 พ.ค.
Sinovac (เข็มแรก) ~ 4,500 คน
SinoVac (เข็มที่ 2) ~ 4,700 คน
BioNTech (เข็มแรก) ~ 8,00 คน
BioNTech (เข็มที่ 2) ~ 11,900 คน
.
- รวมทั้งโครงการ (80 วัน)
Sinovac (เข็มแรก) ~ 509,900 คน
BioNTech (เข็มแรก) ~ 670,6000 คน
รวม (เข็มแรก) ~ 1,180,400 คน
คิดเป็น 18% ของจำนวนประชากรทั้งหมด
.
SinoVac (เข็มที่ 2) ~ 372,500 คน
BioNTech (เข็มที่2) ~ 431,300 คน
รวม (เข็มที่ 2) ~ 803,800 คน
คิดเป็น 12.3% ของจำนวนประชากรทั้งหมด
.
- ผู้ได้รับวัคซีนและต่อมาเสียชีวิต (33 คน)(ยอดสะสมตั้งแต่เริ่มโครงการ ตัวเลขอย่างไม่เป็นทางการ)
SinoVac 23 คน
BioNTech 10 คน
.
- อัตราผู้มีอาการรุนแรงหลังได้รับวัคซีน = 0.16%
Sinovac = 0.2% (1,527 ราย จากผู้ฉีดวัคซีนทั้งหมด 758,900 ราย)
BioNTech = 0.12% (875 ราย จากผู้ฉีดวัคซีนทั้งหมด 733,000 ราย)
เสียชีวิต 28 ราย อายุ 43-92 ปี
(หมายเหตุ: ตัวเลข ณ วันที่ 2 พค)
.
- ผู้เข้ารับการรักษาใน รพ หลังจากได้รับวัคซีน (17 พ.ค.)
จำนวน 4 คน
ทั้งหมดเป็นผู้หญิง อายุ 21-53 ปี
อาการ:
- SinoVac (เข็มแรก) แน่นหน้าอก วิงเวียน เหงื่อออก ตัวเย็น ความดันลด
- BioNTech (เข็ม 2) ผื่นขึ้นหน้าอกและส่วนอื่นๆ
.
🇸🇬 #สิงคโปร์ (ณ วันที่ 10 พ.ค. 64)
จำนวนผู้ได้รับวัคซีน(ทั้งหมด) 1,852,684
จำนวนผู้ได้รับวัคซีนครบโดสแล้ว(ทั้งหมด) 1,284,646
.
================
📊 #สรุปตัวเลข
.
🇭🇰 #ฮ่องกง
ติดเชื้อสะสมทั้งหมด 11,827 (+1)
เสียชีวิต 210 (1.78%) - ตัวเลขเมื่อวานนี้
รักษาหาย 11,531 (97.51%) - ตัวเลขเมื่อวานนี้
.
🇸🇬 #สิงคโปร์ (ข้อมูลเมื่อวานนี้)
ติดเชื้อสะสมทั้งหมด 61,613 (+28)
เสียชีวิต 31 (0.05%)
รักษาหาย 61,123 (99.20%)
.
🇹🇭 #ไทย
ติดเชื้อสะสมทั้งหมด 113,555 (+2,473)
เสียชีวิต 649 (+35)(0.57%)
รักษาหาย 69,918 (+2,718)(61.57%)
.
🌎 #ทั่วโลก
ติดเชื้อสะสมทั้งหมด 164,283,858 (533,254)
เสียชีวิต 3,404,750 (2.07%)
รักษาหาย 143,022,282 (87.06)
.
🇭🇰 #covid19hongkong
🇸🇬 #covid19singapore
🇹🇭 #covid19thailand
primary industry 在 Leng Yein Facebook 的精選貼文
2020年社交媒体最具影响力的影响者🏆
*获得马来西亚旅游及文化部的认可*
这个奖是属于辅助类型,寓意一个人对社会大众所作出的贡献等等。姐姐在这十几年来一直不断地回复粉丝并协助解决他们的问题,领导他们向往正道和勇往直前,且救助那些有了轻生念头并对生活感到绝望的人。这渐渐已经成为了姐姐生活里的一份责任,成为了粉丝们的精神支柱,并在他们需要人陪伴和聆听时,姐姐会陪在他们左右,尝试了解他们的问题,以让他们在最糟糕的情况也存有一丝阳光,因为姐姐是粉丝们的依靠,一位值得信赖和依靠的人❤️ 而在今天,我国政府部门终于认可辅助类别在社会上的重要性。
感谢你们认可姐姐为社会所作出的一切贡献。在此,姐姐也衷心祝贺所有得奖者😎
Social Media Influencer Of The Year 🏆
𝙀𝙣𝙙𝙤𝙧𝙨𝙚𝙙 𝙗𝙮 𝙩𝙝𝙚 𝙈𝙞𝙣𝙞𝙨𝙩𝙧𝙮 𝙤𝙛 𝙏𝙤𝙪𝙧𝙞𝙨𝙢 , 𝘼𝙧𝙩𝙨 & 𝘾𝙪𝙡𝙩𝙪𝙧𝙚 𝙈𝙖𝙡𝙖𝙮𝙨𝙞𝙖
This award falls under the Ancillary Category, meaning a person whose work provides necessary support to the primary activities of an organization, system, etc. Jie had been reply all my fans, guiding them, supporting them, and helping them in moving on with their life, getting them out from problemsa and hardships in life, and saving lives from committing suicides and depression. It had became a responsibility i took up, to be that person my fans need, accompanying them, be there for them, understand them, listen to them, lend a shoulder, and let them know that they r not alone in the worst, and that there is someone that they can rely on, they can trust and someone who believe in what they do ❤️ And finally the government and sectors realised the importance of ancillary
Thank you so much for recognising my work. Big congrats to all winners of the year 😎
90 Recipients of MFMPA, Malaysia Fashion, Modeling and Pageant Awards 2020 from 6 Categories of Awards receiving on the 7th Jan 2021 at Grand Ion Delemen Hotel, Genting Highland from Miss Malaysia Kebaya.
They are the Industry Contributors to the Nation especially in Fashion , Modeling and Pageant related Industry.
This Event supported and Witnessed by Malaysia Tourism, Art and Culture and encourage Private Sectors work hand in hand with MOTAC...
#awardCeremony
primary industry 在 Saphire Wang Youtube 的最佳貼文
大家好 我是Saphire
是個在倫敦讀服裝設計的台灣留學生
會定期發佈日常生活、餐廳介紹、旅遊心得
歡迎訂閱我的Youtube頻道或是Instagram: kiiesx
https://www.instagram.com/kiiesx/
這次的時裝秀感謝Angus Chiang的邀請
Inspired by the primary industry in Taiwan, ANGUS CHIANG AW19 show continues collaborating with the artist/set designer @garycard to recreate a Taiwanese market scene in PFW. Fresh fruits and vegetables, freely stacked boxes, vibrant vendors stalls can be seen everywhere in the set. Along with the hustle and bustle of the crowd, evoking the familiar atmosphere and experience in the market.
The fruits and vegetables we used for the scene will be donated to local homeless charities after the show.
以台灣第一產業為靈感,本季AW19秀場佈景延續上季與藝術家Gary Card的合作,從市場中常見的紙盒、木箱以及新鮮的蔬果挪用做為創作主元素,現場搭建棚架以及各處隨意堆疊的蔬果、漁穫紙箱,將熟悉的台灣市場帶至巴黎秀場中,喚起觀眾熟悉的熱鬧市井氛圍。
而現場備有的許多真實蔬果道具,我們也都將在秀後捐贈給當地遊民慈善機構。
內容來自: @anguschiangofficial
primary industry 在 serpentza Youtube 的最佳貼文
Chinese parks are quite a different sort of experience, other than being a place for people to try and sell off their sons and daughters for marriage to other families, it's the only place people are really able to go out and practice their kung fu, dancing, singing, musical instruments etc. Of course there are the regular activities such as having a picnic, hiking and playing sports (as well as some boating and fishing) available as well. Come and join Sasha and I as we get the low down on how Chinese parks work.
The primary goal of attending the marriage market is for parents to find a suitable partner for their child. The standards of finding the right match may be based upon (but not limited to) age, height, job, income, education, family values, Chinese zodiac sign, and personality. All of this information is written on a piece of paper, which is then hung upon long strings among other parents' advertisements for their children. The parents walk around chatting with other parents to see if there is a harmonious fit only after their children's standards are met.
Umbrellas used for advertising
Many parents do not have permission from their child to go to this event. It has been described as "match.com meets farmers' market" with a low success rate. In many parents' eyes, parent matchmaking gatherings such as the Marriage Market are the only way to uphold a traditional dating style for their children in modern China. China's long idealized tradition of continuing their family lineage is very important within Chinese culture. As the children of the One Child Policy start to become of typical marriage age, the so-called marriage "market" of China has wavered in stability, particularly for males in China. The University of Kent predicts that by the year 2020, 24 million men will be unmarried and unable to find a wife.
Recently, well-educated women in China with established careers are in less of a hurry to get married. They have more options than women in past generations and are not afraid to put their career first. This change in marriage ideology puts the women in a higher position of power within a traditionally male-dominated society. Now more women seek to find a responsible man with personal integrity instead of just a high paying job.
Many men's standards have changed with the progression of women's status in the work industry as well, they expect a woman that has been educated and well on her way to a career path. But what has drastically changed is the older generations viewpoint on the subject—they agree with the younger generation, with the two most important qualities in a wife being "elegance and a decent career path," quite a change from "diligence and the willingness to suffer the burden of life".
⚫ Watch Conquering Southern China (my documentary) and see China like no one outside of China has ever seen it before: https://vimeo.com/ondemand/conqueringsouthernchina
⚫ Support me on Patreon: http://www.patreon.com/serpentza
Join me on Facebook: http://www.facebook.com/winstoninchina
Twitter: @serpentza
Instagram: serpent_za
My other channel: https://www.youtube.com/c/advchina
Music used: Virtual Vice - Black Rose
Artist's bandcamp: https://virtual-vice.bandcamp.com/releases
primary industry 在 iamkoo Youtube 的最讚貼文
The little known Nam Du archipelago (pronounced “nam yu”) is 21 islands and islets in the Gulf of Thailand off the southwest coast of Vietnam.
The main cluster of 19 islands lies 52 nautical miles from Rach Gia, the capital of the Mekong Delta province Kien Giang. A few of the islands, like main island Nam Du, are large enough to be inhabited, with colourful fishing boats and gritty villages clustered along its crust, while tiny islets like hon Do Nai are no more than a bump of rock drowning in ocean.
As if this tale could not get more fantastical, the three islands of Hon Tre, Hon Son and Nam Du are connected to the mainland by a daily fast ferry – yet few foreigners venture there.
Nam Du (also called Hon Lon – “big island”) is the furthest and final ferry stop, a one-way journey from Rach Gia taking two and a half hours.
The primary industry is fishing and up until recently, the only place for visitors to stay was in a room in a local’s home. The island is still relatively poor and developing, and tourism here is very much in its infancy, but recently a few purpose-built guesthouses have appeared, including one right on the water.
How to get to to Nam Du island
Basically, way to get Nam Du is similar to Phu Quoc. You have to get to Rach Gia from Ho Chi Minh by bus (take about 6 hours) then take the boat.
Some reputed bus firms to get Rach Gia:
1. Mai Linh at Mien Tay bus station (395 Kinh Duong Vuong – Binh Tan – Ho Chi Minh city). Tel: +848.39.29.29.29
2. Phuong Trang bus at Mien Tay bus station, Tel: +84838.309.309
3. Tuyet Hon at Mien Tay station, +84773.960.960
4. Kumho Samco at Mien Tay station, +8483.8776.594
You can pick many others at Mien Tay bus station (395 Kinh Duong Vuong – Binh Tan – Ho Chi Minh city) with fares less than $10.
primary industry 在 PRIMARY INDUSTRY在劍橋英語詞典中的解釋及翻譯 的相關結果
an industry that produces energy or basic materials, such as coal, oil, metals, crops, etc., or these industries considered as a group:. ... <看更多>
primary industry 在 industry | Definition, Sectors, & Facts | Britannica 的相關結果
Primary industry. This sector of a nation's economy includes agriculture, forestry, fishing, mining, quarrying, and the extraction of minerals. It may be ... ... <看更多>
primary industry 在 Primary sector of the economy - Wikipedia 的相關結果
The primary sector of the economy includes any industry involved in the extraction and production of raw materials, such as farming, logging, hunting, ... ... <看更多>