📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
同時也有8部Youtube影片,追蹤數超過361萬的網紅Dan Lok,也在其Youtube影片中提到,Are You Sick And Tired Of Being Rejected Over The Phone Or Lose The Sale To Dumb Objections? Click Here To Get All Of Dan’s Best Online Trainings And ...
「worst call of all time」的推薦目錄:
- 關於worst call of all time 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於worst call of all time 在 Facebook 的最佳貼文
- 關於worst call of all time 在 李卓人 Lee Cheuk Yan Facebook 的精選貼文
- 關於worst call of all time 在 Dan Lok Youtube 的精選貼文
- 關於worst call of all time 在 BILLbilly01 Youtube 的最佳貼文
- 關於worst call of all time 在 Bubzvlogz Youtube 的最佳解答
worst call of all time 在 Facebook 的最佳貼文
Every sales call you ever take part in will give you one of three things.
You could hear a “YES”, and if so, that’s great.
Or you’ll hear a “NO”.
But hearing a “NO” isn’t the worst thing that could happen to you.
After all, not everyone you speak to is qualified to invest in your product or service.
So it’s important to know that if you hear a “NO” there’s a valuable lesson in there for you.
Take the time to listen to the recording of your call.
Figure out which areas you can improve on.
And figure out what you’ll do differently in your next call.
The more you do this, the faster your calls will improve...
And the more money you’ll make.
On August 1st, we’re running the first-ever More Sales challenge.
Inside the ethos challenge, you’ll get 21 days of world-class sales training from me, Dan Lok.
You’ll get a carefully chosen selection of bonuses you won't find anywhere else.
You’ll get everything you need to hone your sales process...
Fill your pipeline with high-quality leads and appointments, and close those leads into your products or services.
And, you'll also get to build a network of high-performance sales professionals and business owners from all over the world.
If you’re ready to take your sales and closing to the next level and finish 2021 with more revenue and money in the bank...
Then click here https://moresalesnow.danlok.link/ and join the More Sales Challenge, while you still can.
See you in class
worst call of all time 在 李卓人 Lee Cheuk Yan Facebook 的精選貼文
(Scroll down for english version)
「歷史將宣判我們無罪!」
李卓人8.31案法庭陳情書
法官閣下,我在此認罪,但我在捍衛人民和平遊行和集會自由上,並沒有做錯任何事。我相信歷史將會宣判我們無罪。在此請讓我向你講述更多我的背景,那樣你就能更理解我為何要為了香港的未來,與人民共同走上街頭。
#新時代由政治犯開創
作為一名基督徒,我在復活節期間聽讀經員閱讀聖經,提醒了我,耶穌為世人犧牲,被釘上十字架,使罪人與神和解。從被捕到被控到被彼拉多(Pilate)判死刑,祂也是一名政治犯,沒有犯罪,但因為服務窮人和傳福音,而威脅到猶太統治階層。
縱觀人類歷史文明,我們現在享有的權利,也是由一眾政治犯,諸如甘地、馬丁路德金和納爾遜·曼德拉所開創的。在80年代,我是「香港反種族隔離運動」的主席,我一直將納爾遜·曼德拉在1963年遭審判所言銘記於心。他說:「願意為我的理想而犧牲自己生命。」他的理想是爭取南非黑人的平權,然後就被判刑27年。我為他在1994年當選南非總統而感到興奮,他給予了全世界受壓逼的人民希望,讓他們知道透過堅持不懈的鬥爭,可以達致公義。
#曼德拉給我的啟發
我花了一些時間去講曼德拉帶給我的啟發,因為我是從1978年起投身到勞工權益和民主運動的。我畢生的理想,就是讓基層和被壓逼者勇於發聲和站起來爭取屬於他們的權利。每當那些被壓逼者起來捍衛他們的權利,為尊嚴而抗爭時,我也會受到鼓舞,並得到力量去繼續面對香港正面臨的艱苦奮鬥和挑戰。我曾問自己,沒有抗爭,我的人生將會是如何?這已是我第43年投身於民主運動,法官閣下,你必須明白當我目睹國家權力如何使用武力鎮壓人民,令香港人受傷、受牢獄之苦或是流亡,以及香港民主倒退,人民的權利遭剝奪之時,心裏的痛苦和折磨。我看到我的理想正在崩潰,但即使被黑暗籠罩,也無阻我繼續為理想奮鬥的決心。為了這一理想,我甘願承受任何懲罰。
法官閣下可能會說,法律就是法律,而我好像沒有就八三一案展露出絲毫悔意。我希望法官閣下明白,我是何等重視人民透過言論和集會所彰顯的自由。這是弱勢和受壓逼者尋求公義的唯一路徑。剝奪了這種權利,形同制度對人民施暴。我不願看見香港人活在建基於制度暴力的管治之中。因此,我會竭盡所能,伸張人們有尊嚴及和平遊行去發達意見的權利。
#最壞的尚未來臨
#法庭要睜開眼睛
我十分尊重法官閣下維護法治的熱誠。在此,我希望能引用已故法官Ruth Bader Ginsburg的話:
「法官們會不斷思考和改變,我希望倘若今日法庭有盲點,明日它將會睜開眼。」
我十分敬佩Ginsburg為了性別平權奮鬥一生,成就斐然。她告訴我們,法官應該與時並進,趕上不斷在變遷的時代。在香港,最壞的尚未來臨,我們需要法律界人士去睜開雙眼,觀看人民的苦難,並反思法律在這個時代的立足點,如何隨時代變遷而轉變,以捍衞人民的尊嚴與權利。
2021年4月7日
"History will absolve us"
Submission of Lee Cheuk Yan to the Court
Your Honour, I plead guilty but I’ve done no wrong in affirming the rights of people to peaceful procession and I believe history will absolve us. May I give you more on my background so as your honour can understand why I decided to march with the people for the future of Hong Kong.
As a Christian, during Easter when the scripture was read, I was reminded how Christ went to meet his fate on the cross, sacrificing for mankind to reconcile sinners with God. From His arrest to his prosecution to his death sentencing by Pilate, he was a political prisoner who committed no crime apart from seen to be a threat to the Jewish Hierarchy by serving the poor and oppressed and preaching the good news.
Throughout history of mankind, the rights that humankind now enjoyed were pioneered by political prisoners from Gandhi to Martin Luther King to Nelson Mandela. I was the Chairman of Hong Kong anti apartheid movement back in the 80s and I always remember the determination of Nelson Mandela when he said during his trial back in 1963: “an ideal for which I am prepared to die for.”. His ideal was the equality for black South African and then he spent 27 years in jail. I was thrilled that in 1994, he was elected President of South Africa, giving hope to oppressed all over the world that justice can be achieve through the persistent struggle of the people.
I went to length about his inspiration to me personally because I started my activism starting 1978 for labour rights and democracy. My lifetime ideal is the empowerment of the poor and oppressed to speak out, to rise up for their rights. Whenever the oppressed assert their rights to fight for their dignity, I feel myself also empowered and inspired to continue the difficult struggle and challenges facing Hong Kong. I asked myself, what is my life without the struggle. The struggle is my life, I cannot imagine my life without it. It had been forty three years of struggle for me and your Honour must understand my deep felt pain and sufferings to see how the State Power had been using brute force against the people and the sacrifices of so many Hongkongers who were injured, jailed or exiled, also to witness the deprivation of the basic rights of the people and the regression in democracy. I saw my ideal crumbling but I will continue the struggle even though darkness is surrounding us. It is an ideal for which I am prepared for any sanction.
Your Honour may say the law is the law, I seems not show any remorse in breaching law in this trial for August 31st. I hope Your Honour understand the utmost importance I put on the rights to freedom of expression through speech or assembly. This is the only avenue the weak and oppressed can have to right the wrongs on them. If deprived, I will call this systemic violence on the people and I do not want to see Hong Kong rule on the basis of such systemic violence. Therefore I would do my utmost to affirm the rights of people to a dignified and peaceful procession to express themselves.
Your Honour must be passionate about upholding the law and I respect your ideal. I hope I can quote from the late Judge Ruth Bader Ginsburg:
“Justices continue to think and can change. I am ever hopeful that if the court has a blind spot today, its eye will be open tomorrow”
I was very impressed with her passion for gender equality and how she fought her whole life for gender equality and was able to achieve so much. Her message was time changes and judges should catch up with time. For Hong Kong, the worst may yet to come, and we need the legal profession to open their eyes to the suffering of the people and reflect on which side the law is with and how to changes with time for the advancement of the rights and dignity of the people.
I humbly submit myself to your sentencing and whatever your sentence, I have no regret for standing up for the rights of the people.
7th April, 2021
worst call of all time 在 Dan Lok Youtube 的精選貼文
Are You Sick And Tired Of Being Rejected Over The Phone Or Lose The Sale To Dumb Objections? Click Here To Get All Of Dan’s Best Online Trainings And Discover His Closing Secrets: http://speakingeffectively.danlok.link
One of the worst parts of being a salesman is getting rejected on the phone the first 3 seconds of the call. How can you prevent that from happening, so you can close more sales? Watch this video, as Dan Lok is sharing his best-kept methods on how to speak effectively on the phone (even if English is not your first language!)
? SUBSCRIBE TO DAN'S YOUTUBE CHANNEL NOW ?
https://www.youtube.com/danlok?sub_confirmation=1
Check out these Top Trending Playlists -
1.) Boss In The Bentley - https://www.youtube.com/playlist?list=PLEmTTOfet46OWsrbWGPnPW8mvDtjge_6-
2.) Sales Tips That Get People To Buy - https://www.youtube.com/watch?v=E6Csz_hvXzw&list=PLEmTTOfet46PvAsPpWByNgUWZ5dLJd_I4
3.) Dan Lok’s Best Secrets - https://www.youtube.com/watch?v=FZNmFJUuTRs&list=PLEmTTOfet46N3NIYsBQ9wku8UBNhtT9QQ
Dan Lok is a Chinese-Canadian business magnate and global educator known for being the founder and chairman of Closers.com - the world’s #1 virtual-closers network, Copywriters.com, and SalesCalls.com. Beyond his businesses, Mr. Lok has led several global movements to redefine modern education where he has taught individuals from 150+ countries to develop high income skills and financial confidence.
Beyond his success in business, he was also a two time TEDx opening speaker. An international best-selling author of 12+ books. A member of Young Presidents Organization (YPO) - a private group of global chief executives whose companies employ 22 million people and generate 9-trillion USD in annual revenues. He also hosts The Dan Lok Show - a series on elite business tycoons and world-leading entrepreneurs.
Today, Mr. Lok continues to be featured in thousands of media channels and publications every year and is widely seen as one of the top business leaders by millions around the world.
If you want the no b.s. way to master your financial destiny, then learn from Dan. Subscribe to his channel now.
★☆★ CONNECT WITH DAN ON SOCIAL MEDIA ★☆★
YouTube: http://youtube.danlok.link
Dan Lok Blog: http://blog.danlok.link
Facebook: http://facebook.danlok.link
Instagram: http://instagram.danlok.link
Linkedin: http://mylinkedin.danlok.link
Podcast: http://thedanlokshow.danlok.link
#DanLok #EnglishLessons #PhoneSkills
Please understand that by watching Dan’s videos or enrolling in his programs does not mean you’ll get results close to what he’s been able to do (or do anything for that matter).
He’s been in business for over 20 years and his results are not typical.
Most people who watch his videos or enroll in his programs get the “how to” but never take action with the information. Dan is only sharing what has worked for him and his students.
Your results are dependent on many factors… including but not limited to your ability to work hard, commit yourself, and do whatever it takes.
Entering any business is going to involve a level of risk as well as massive commitment and action. If you're not willing to accept that, please DO NOT WATCH DAN’S VIDEOS OR SIGN UP FOR ONE OF HIS PROGRAMS.
This video is about How To Speak Effectively On The Phone - English Lessons - Telephone Skills
https://youtu.be/4N0NvGGnDyw
https://youtu.be/4N0NvGGnDyw
worst call of all time 在 BILLbilly01 Youtube 的最佳貼文
Official BILLbilly01 cover of A Team by Ed Sheeran featuring Alyn.
For more BILLbilly01 covers, click here! http://bit.ly/1WdURD6
New videos every Saturday make sure to Subscribe for more! http://bit.ly/1q4Bsqr
-------------------------------------------------
Check out Alyn!
YouTube: http://www.youtube.com/alynwee
Facebook: https://www.facebook.com/alynwee/
Instagram: http://www.instagram.com/alynwee
Music Streaming: https://www.fungjai.com/artist/Alyn
-------------------------------------------------
Follow me!
Facebook: http://www.facebook.com/BILLbilly01page
Twitter: http://www.twitter.com/BILLbilly01
Instagram: http://www.instagram.com/BILLbilly01
╔═╦╗╔╦╗╔═╦═╦╦╦╦╗╔═╗
║╚╣║║║╚╣╚╣╔╣╔╣║╚╣═╣
╠╗║╚╝║║╠╗║╚╣║║║║║═╣
╚═╩══╩═╩═╩═╩╝╚╩═╩═╝
☆┌─┐ ┌─┐☆
│▒│ /▒/
│▒│/▒/
│▒ /▒/─┬─┐
│▒│▒|▒│▒│
┌┴─┴─┐-┘─┘
│▒┌──┘▒▒▒│
└┐▒▒▒▒▒▒┌┘
└┐▒▒▒▒┌┘
-------------------------------------------------
Lyrics:
White lips, pale face
Breathing in snowflakes
Burnt lungs, sour taste
Light's gone, day's end
Struggling to pay rent
Long nights, strange men
And they say
She's in the Class A Team
Stuck in her daydream
Been this way since eighteen
But lately her face seems
Slowly sinking, wasting
Crumbling like pastries
And they scream
The worst things in life come free to us
Cause we're just under the upper hand
And go mad for a couple grams
And she don't want to go outside tonight
And in a pipe she flies to the Motherland
And sells love to another man
It's too cold outside
For angels to fly
Angels to fly
Ripped gloves, rain coat
Tried to swim and stay afloat
Dry house, wet clothes
Loose change, bank notes
Weary-eyed, dry throat
Call girl, no phone
And they say
She's in the class A Team
Stuck in her daydream
Been this way since eighteen
But lately,
her face seems
Slowly sinking, wasting
Crumbling like pastries
And they scream
The worst things in life come free to us
Cause we're just under the upper hand
And go mad for a couple grams
And she don't want to go outside tonight
And in a pipe she flies to the Motherland
And sells love to another man
It's too cold outside
For angels to fly
An angel will die
Covered in white
Closed eyed
And hoping for a better life
This time, we'll fade out tonight
Straight down the line
And they say
She's in the Class A Team
Stuck in her daydream
Been this way since eighteen
But lately her face seems
Slowly sinking, wasting
Crumbling like pastries
They scream
The worst things in life come to free us
And we're all under the upper hand
Go mad for a couple grams
And we don't want to go outside tonight
And in a pipe we fly to the Motherland
And sell love to another man
It's too cold outside
For angels to fly
Angels to fly
To fly, fly
For angels to fly, to fly, to fly
Or angels to die
worst call of all time 在 Bubzvlogz Youtube 的最佳解答
Hello Youtube Family
Today’s Vlog:
Proud of Tim,
Jakarta Bound,
Cutest Play Time,
My Manager & Drake,
Growing With Hatred
I'm sitting in my hotel room in Singapore once again. Tomorrow I'll be flying out to the UK to return to my little family. I cannot wait to concentrate on being a wifey and mama again. So that’s the end of the StyleConAsia tour. What an amazing 2 weeks it has been. We have been getting excellent feedback and so overjoyed to hear you guys enjoyed it as much as we did. Again, I want to take the moment to thank you all for inviting me into your daily lives. Thank you for walking this journey we call life with me. I recieved so many kind words during the tour and I want you guys to know that in a lot of ways, I feel even more thankful for you all. You guys have stuck by me during my best and worst. I know I wouldn't have become the girl I am today without you all for sure.
I was asked the question on “dealing with negativity" so so many times during panels and interviews that I wanted to express also on this vlog that negativity is a part of life and it can definitely help us grow. In our lives, we will all get judged and mistreated even if we are being nice. The reason? Because nobody is perfect. People who hurt others are often hurt and have their own struggles too. Being so exposed on Youtube helped me accept myself. I really feel that Youtube can cause you to go into two directions. You can let it defeat & destroy you or you can let it STRENGTHEN you to accept yourself. Don’t give in to your fear. The more you hide, the more it will eat you. Know it’s ok to be vulnerable and imperfect. It makes you the beautiful being that you are.
Love, the Bubz family xo
Subscribe to my Vlog channel for daily doses of HAPPINESS!
http://bit.ly/BubzVlogz
Subscribe to my Beauty Channel here:
http://bit.ly/BubzBeauty
Connect with me:
MY WEBSITE: http://www.bubzbeauty.com
TWITTER: http://www.twitter.com/bubzbeauty
INSTAGRAM: http://www.instagram.com/itsbubz
TIM'S INSTAGRAM: http://www.instagram.com/bubzhubz
FACEBOOK: http://www.facebook.com/itsbubz
SHOP MY MAKEUP BRUSHES: http://www.shopbubbi.com