Jump to content

DeFi: KindomsLocked JEWEL Mining Announcement — April 28, 2022


enjoi
 Share

Recommended Posts

Locked JEWEL Mining Announcements — April 28–29, 2022

0*hpNetfpeohGvgfjs.png

Frisky Fox posted an announcement in the DeFi Kingdoms official Discord sever related to some updates around Locked JEWEL and Locked JEWEL mining on April 28, 2022.

On April 29, 2022 the matter was resolved and Frisky Fox posted an updated announcement about the resolution and plan forward.

Please see below for the test of both announcements.

If you have any questions please reach out to our helpful team of moderators.

April 28, 2022 (1:17pm EDT)
Frisky Fox: Hey @everyone, I’m writing to address some concerns about JEWEL mining.
# JEWEL Mining and TransferAll
Right now there is an issue where mining locked JEWELs via the mining quest can be unfairly augmented by transferring all locked JEWELs between multiple accounts, allowing more Heroes than intended to mine the locked jewels at the same time.
We have run multiple internal analyses on this issue and have calculated that the number of locked JEWELs being collectively unlocked via this mechanism is just shy of 12k in the past 12 hours. It takes a veritable army of miners to be able to do this.
By comparison, the total number of locked JEWELs being mined by the Quest is many times that number, and the number of JEWELs being earned via Gardening Quest is much higher than that.
In other words, the locked JEWELs at question represent a really small percentage of the questing rewards. Nevertheless, we feel it is imperative that we correct this issue quickly and decisively.
We had a vote a while back (https://gov.harmony.one/#/defikingdoms/proposal/QmdXf7FrFf2HvGMgWpMhroRkJc3aVekjZqL523eBVbDP5m) to determine what should be done to address this, and the community voted in favor of creating a new Locked JEWEL mechanism that would be able to add a cooldown to transferring locked JEWELs (this is already how it works on Crystalvale).
The code for this is already written but the deployment plan for it is a bit more involved because of the way that locked JEWELs are represented in other sites like CoinGecko, so there are additional coordination steps needed for that.
We have been discussing internally the best thing to do about this today, and here is the plan:
## Immediate Term
To stop the immediate bleeding, we are disabling the JEWEL Mining Quest for now until the short term fix is ready. Heroes that are actively mining JEWELs will be able to finish out their Quests via the new Active Quest log, but no new Quests will be able to be started until we get the short term fix in.
## Short Term (a few days to begin to roll out)
Part of the update to the Quest contracts that we did last week opened up the possibility to implement a Block List, so that Game Admins can prevent Heroes that are breaking the Terms of Use from performing Quests.
Before we take any actions like that, and in the spirit of decentralization, we want to hold a vote by the community to make sure that people agree with this approach.
We will be putting up a vote for this shortly for people to weigh in on, along with more details about how this would impact the other functionality of the Heroes, such as selling in our in-game auction houses, and how they are viewed in the game to denote that they are blocked.
If and when that vote passes, we will begin enforcing it by scanning for any accounts that are breaking these rules from that point forward and putting the Heroes involved on a block list such that they cannot participate in Quests.
Once this block list mechanism is in place, the JEWEL mining quest will be enabled again and scripts will be set up to monitor for Heroes that are breaking the rules.
## Medium Term
The medium term fix is still the same as we have proposed in the past and have been actively working on: implementing a new Locked JEWEL mechanism that adds extra checks in place such as a cooldown on transferring locked JEWELs. This is already how it works on Crystalvale, so this change will be bringing Serendale to feature parity.
As mentioned before, there are additional considerations for this, such as external integrations with CoinGecko, which will need to be updated so that people see the correct numbers for circulating JEWELs.
# Conclusion
The Dev Team is continuing, as always, to work hard on the upcoming timeline features, and we remain dedicated to promoting security and fairness.
Thanks everyone for your continued trust and patience as we continue to take action to improve and secure the game experience and project.

Later that same evening Frisky Fox posted an additional update about this:

April 29, 2022 (2:50 am EDT)
Frisky Fox : Hey @everyone , sorry for the late night ping, but we have some great news! Magnus, Mr Faun, and I have been up late testing the fix for Jewel Mining so we can turn it back on. We spent some time and brainstormed ideas to see if there was anything else we could do in the short term to get it back up and running safely, and we came up with a really good solution. We wanted to see if there was anything we could do to that wouldn’t require a block list, in the interest and spirit of decentralization. The way it will work is, whenever a player transfers locked jewel, any active jewel mining quests they have will be canceled, as there is no longer any locked jewel to mine. This means a block list will not be necessary for this fix. Mr Faun deployed infrastructure to support this and got a proof of concept up and running on Testnet, and our Knights have been alpha testing it. All of the tests have passed and we are ready to activate it again on Mainnet starting at 11am EDT tomorrow. This brings the total down time for the JewelMining maintenance to under 24 hours. A huge thank you to the amazing Dev Team for working tirelessly today to get this fixed, and a huge thank you to everyone for their patience and support

This morning, April 29, 2022, Frisky Posted the resolution of this matter and plans going forward:

April 29, 2022 (10:12 am EDT)
Frisky Fox: Good morning @everyone, I’ve got a couple of updates about the JewelMining Quest.
Our testing has been successful and the fix has now been deployed to Mainnet, and JewelMining has now been turned on again!
The team worked very long hours yesterday and into the early morning to get this fix brainstormed, prototyped, deployed, and tested, and I’d like to take a chance to thank them for their diligence and out of the box thinking that lead us to this new solution.
To elaborate, the fix that was put in place was a completely new and outside the box approach to the issue, that was made possible via some new technology that was brought to the project since the issue was first reported. This new solution is much less disruptive than the previously planned one, and results in a better user experience while also being less hands on with a block list and moderation.
We are also happy to announce that another fix was included in this refactor, to address stamina recharge inconsistencies under certain circumstances in the new quest system. Stamina should now be recharging at the proper rate.
# Conclusion
I realize that many people have questions about what happened, and why decisions were made how they were, and when they were.
Our commitment as a team to building trust and transparency is unchanged, and as such I will be posting a post-mortem following this announcement with more context and information. There are definitely lessons to be learned from these, and we will improve.
Thank you everyone for your patience and support during this time. We greatly appreciate it, and we continue to work hard on the upcoming features in our efforts to grow the ecosystem and provide more utility to the game tokens and assets.
# Context and Post Mortem
One thing I’ve been hearing a lot is, “If it got fixed so quickly, why did it take 3 months to implement?”
This is a multi-faceted answer.
When we were first made aware of the issue, it was a proof of concept that wasn’t really being actively abused in bulk.
Even so, we recognized the importance of getting ahead of it and getting a fix in place. We held a brainstorming session trying to think through creative solutions.
It is a tricky issue to solve because the underlying contract, JewelToken, is not upgradeable, so we couldn’t just change or disable the transferAll function.
The solution we came up with after wracking our brains, and which is still the ideal medium-term solution, was to create a new smart contract to handle the JEWEL unlocking aspect.
The way that would work, for context, is it would require everyone to transfer their locked jewels to a new vault smart contract, which would track and manage their locked jewels. Until they did this, their jewel wouldn’t be able to be unlocked via JewelMining quest or regular linear unlocking in August.
We quickly put some code together as a proof of concept and saw that it would indeed work, but didn’t come without some major caveats.
The first major caveat was that it required everyone to transfer their locked jewels, which is pretty disruptive, and requires a LOT of new UI elements and smart contract code to support it, as well as a major refactoring of our quest system.
The second major caveat, which was even harder to overcome, was the fact that many external sites were reading data from our JewelToken smart contract to determine the circulating and total supply. Requiring everyone to move their locked jewels to the new contract would look to the blockchain like a TON of jewel suddenly became unlocked, and the circulating supply of JEWEL suddenly exploded.
This meant that it would take some very careful planning and coordination to pull off.
As such, we started those conversations and planning progressing, while recognizing that this wouldn’t be an overnight fix like we had hoped.
During this time, we kept progressing on other features and launching DFK Chain, basically adding utility and features to the app to continue to support the utility and value of the assets.
That was a difficult call that was made, choosing to focus on the things that had the most ROI for the project and the investors, given that the people actively abusing it were very few at that time.
Since then, things have changed. One of those things is more people began to abuse the issue, and it gained more steam and momentum in the community and on twitter.
This came to a head this week suddenly, likely as a result of heightened tensions due to the markets, which is totally understandable. Suddenly this issue that we were plugging away at slowly became priority number 1 in terms of community sentiment and optics.
We did an analyses and discovered the people using it had increased, and felt that we needed to take more decisive action in the short term than what we had planned on having to do.
That meant that we needed to find a short term solution that could be deployed in days while we finished up the medium term solution that would still take weeks.
The original idea was to put some kind of block list in to enforce the rules and take action against those abusing the system. This itself came with many caveats though. There would need to be Terms of Use put together and approved, as well as a community vote and lots of code changes to inform and enforce those. And who would be certified to make those decisions and enforce the rules?
It wasn’t an easy or ideal solution, but it was the only thing we could think of at the time that would fix things in the short term.
That was when we sat down and had another brainstorm session, to see if we could figure out a better short term solution that was less disruptive.
We immediately put together a war council consisting of the devs, the tokenomics, and the mechanics departments, among others, to determine what else we might be able to do. This is where a new key development came in.
During the previous few months, we had partnered with OpenZeppelin to bring their Defender, Admin, Sentinel, Autotask and Relayer products to the Harmony Blockchain. This meant that we now had new tools we could utilize to attack the issue.
The idea was proposed that we could now use those tools to listen to events like transferAll and then take action to cancel the quests of the person doing the transfer.
In theory it would work, so we set about putting together a proof of concept. We were in huddles and on calls most of the day and well into the night as we deployed code to upgrade the QuestCore contract to support this new feature, while simultaneously deploying infrastructure to monitor and relay the calls to the contracts to enforce it.
It was about 3 am last night when we finally got it up and working, and we enlisted the help of the Knights to thoroughly alpha test it, and switched to writing unit tests and ensuring everything was ready to go.
We confirmed that everything was working as intended, and we made the decision to make an announcement with the good news, that we had fixed in under a day what we had previously thought would take at least a few days to fix, and did so in a more elegant and less disruptive way.
The team worked a 16 hour day yesterday to make this happen, and it was only possible through new technology and insight that we didn’t have previously.
I considered this a huge win and am very proud of the team for pulling together like that to put a fix out so quickly, with a completely new approach that hadn’t been considered before.
# Lessons learned
With every feature release and bug fix, we spend time as a team to review what went right, and what could have been handled better, so that we can make sure we do it better next time. This constant iteration is key to the success of any project, and we take it seriously.
There are many lessons to learn from this episode, and we will be taking steps to ensure that this doesn’t happen again.

Thanks for being such an amazing and positive community. As always, godspeed and good questing!

0*v68PxaRV7XFEpnNC.png

DeFi Kingdoms Website
Discord
Reddit
Telegram
Facebook
Twitter
Instagram
YouTube

stat?event=post.clientViewed&referrerSou

View the full article

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...