Splinterlands Scaling Update

Over the past week we have implemented a number of quick and short-term measures to help address the huge growth that Splinterlands has recently experienced, but while those measures might allow us to support our current level of growth, they won't be even close to sufficient if we grow 10x or more from here (which is very much our goal).

With that in mind, we have also recently worked to come up with a longer term solution that we expect will let us scale to many, many times our current size while also helping to address a number of issues that have come up in the past.

Ultimately, a long-term solution to being able to scale up to really eye-popping numbers requires a lot more than just provisioning more and bigger servers (which we have done considerably over the past week). It means being smarter and more efficient about how we utilize the Hive blockchain.

After a significant amount of review about how the entire Splinterlands system works, we have determined that there are a number of game operations that can (and should) be moved off of the blockchain while still allowing us to maintain a fully transparent, publicly verifiable, and provably fair system that our players expect.

As a result, we are planning to move all battle-related operations off of the blockchain. This will include the following operations: find_match, cancel_match, submit_team, team_reveal, and surrender.

Players will still create and sign those transactions in the game client using the private keys for their Hive blockchain accounts, but instead of publishing them to the Hive blockchain they will be sent directly to Splinterlands game servers.

The fact that the transactions will still need to be signed by players' Hive blockchain keys means that the transactions are still fully verifiable (meaning Splinterlands cannot "fake" or alter a transaction or any data it contains) and the results of the battles will still be provably fair.

Splinterlands will then publish the results of each battle back to the Hive blockchain in order to ensure that the full state of the game is still maintained on the blockchain in a publicly verifiable way.

It is important to note that all other operations in the game will still be required to be published to the Hive blockchain as normal in order to be considered valid, and the battle-related operations are still able to be submitted via the Hive blockchain as well as via the API. This means that existing automated scripts and bots should not need to be updated as a result of this change.

Additionally, we do not expect this change to have any effect on third party tools and services which rely on the Splinterlands APIs.

Benefits

The primary benefit of this change is that it should allow for the game to easily scale to many, many times its current size without constantly running into the issues we have experienced over the past couple of weeks.

In addition to the scaling benefit, it will also alleviate the majority of the "node" issues that players regularly experience whenever a Hive blockchain node that they are connected to has an issue (whether that be a node run by Splinterlands or other third-parties). These issues regularly cause players to "flee" battles which has been a constant problem and source of frustration for many players.

It should also help to resolve any resource credits issues that players experienced due to the relatively high volume of on-chain transactions that have been required to play the game.

Finally, it will make it much easier to achieve our longer-term goal of allowing anyone to run their own Splinterlands "node" and independently calculate and verify the state of the game at any point in time on reasonable hardware and costs.

Timing

We don't yet know the exact timing for this update to be released but we are working on getting it ready and tested as soon as possible. We are hoping to be able to get it live as soon as next week and we will give as much advance notice as possible before the update. The update will likely also require some downtime for the application which will be announced as far in advance as possible.

Conclusion

We understand that some players may not be happy about this change and the fact that not every single thing that happens in the game will be published on the Hive blockchain, but it is important to realize that putting everything on the blockchain just for the sake of being able to say that everything is on the blockchain is both unnecessary and extremely inefficient and will significantly hold back the growth of the game in the future.

After reviewing many different options, the Splinterlands team is convinced that this is the right way to scale up the product without having to compromise the transparency and verifiability that is key to a blockchain-based application.

We look forward to getting this put in place as quickly as possible so that our players can have a quicker, smoother, and less buggy gameplay experience and we can move on to implementing all of the awesome new features we have planned for the coming months!


Stay tuned for more updates from the Splinterlands!

Website | Blog | Discord | Telegram | Shop

NOTE: All rewards from this post will be burned.

Sort:  

How do you determine the randomness functions that determine game play? Do you use the block transaction ID from submit_team or team_reveal?

Also you're heading in a less decentralized direction... maybe it's a shortcut to eventually be decentralized... but it's still concerning to some people we are hearing from.

EDIT: Found the answer (maybe it's old but it's on your blog still)

image.png

So we are very concerned you are removing that one particular transaction from the blockchain because being able to say "provably fair" battles maybe can no longer be used as a catch phrase anymore by splinterlands. I guess it's a trade off.
Anyway we await your response.

I guess this would necessitate removing the "sm_team_reveal" transaction from the RNG. So that would beg the question is the two block ID hashes enough to seed the number, or will they need to pull in another source? The two hashes seem rather deterministic to me, so it would seem they would need to add another source.

That doesn't seem to be the only trade off, for example without find_match being public on chain, malicious game operator can censor player that's winning too much.

"We could have been free, but it was just too expensive"

- hopefully, quote is unrelated

I'm interested too

Hopefully they answer this one soon!

Brilliant changes! As a professional systems architect in the blockchain space, let me reassure everyone that these are VERY well thought out moves (particularly moving non-critical transient data off the blockchain -- NOT something that anyone should argue with). I don't always agree with the SL team -- but this is a job VERY well done.

Last we checked they use ONE of those transactions to determine the ID that determines the results of the game and now they're taking that transaction away... they should indicate how they're doing the randomness function now.

When the community driven nodes are available, please publish an in depth tutorial on how to get one up and running. We want as many nodes in as many places as possible!

I think the changes for find match/cancel match/etc are reasonable
something else I think could help in the future:

A - include something like node beacon (https://beacon.peakd.com/) in-game
B - have RC visible somewhere in-game, better warnings, more info, etc.
C - have some way for non-hive-centric person to powerup in-game
(making all of this clean/intuitive could be a challenge)

I think a lot of the friction involved onboarding people relates to node/RC issues

Agreed those ones don't need to be on chain there is a case for 2 of the others as well.

I have thought about that too after the boom of the SPS launch, and think this is an absolutely reasonable compromise. Keep up the great work.

Makes logical sense, I lost a lot of matches last season without getting a chance to lose them for real 😁

Hahah like the way you phrased that

Lol cheers dude

Although I've been pretty sure that Hive resource credits will become a hugely important mechanism for the future of Hive, I'm sure it's also super frustrating to brand new members who can't run the transactions they need to play. Totally agree that not everything needs to be on the blockchain itself... I'm sure lots of Hive Witnesses will be thrilled that their servers won't explode with all the recent increases in transactions. I think people forget that with blockchain technology, every server that runs a node usually also has to download and keep every transaction that's ever been placed on the blockchain forever and ever. That's a lot to store and maintain.

I am surprised they didn't make this realization sooner.
I have been saying for at least 2 years now.
Not everything needs to be 'on-chain' if you are going to scale.

Glad to see they are changing things finally.

:)

I salute your amazing foresight. Thank you for bringing it to our attention

Your welcome.
I have been discussing these type of things on my blog for a long time.

I don’t know if this is good, bad, or sideways, but you guys always deliver and never disappoint so damn the torpedoes and grab the bull by the horns and shit. I wanna get back to the game, now.

Also, as just a side note... my collection stopped increasing in value by thousands of dollars a day a few days ago... would you guys mind looking into that and getting that back the way it was when you get a minute? That'd be great. 😊

This only shows the explosive growth Splinterlands has been experiencing through these past weeks and would expect to keep for some time. I'd guess most card games are going to be able to handle themselves almost completely on-chain, but Splinterlands is no longer just another card game and with the Lands expansion it will become even more complex.

More gameplay and players is simply put, more transactions, and although it's nice to wish for fully decentralized solutions, I believe this mix of centralized and decentralized is what's coming towards the industry.

Looking forward to how this all evolves, best of luck and see you in Praetoria!
untitled.gif

Beautiful! Thinking ahead as usual, not just looking for a quick 'duct tape' fix. These guys have been strong and steady the entire life of the game. I also love how the devs were off social media while everyone was whining about the mentioned issues. Priorities!!!!

I see no reason to be upset at your team for moving the battles to your servers. It seems like the right thing to do as the random fleeing is very annoying and and the integrity of the transparency will still be intact. You guys have really done a wonderful job with implementation of the whole splinterlands concept and business model. Your track record shows how much time and research you guys have put into everything. You guys are always one step ahead of the curve and I am really excited to be a part of this community. Full trust and respect from me.

Splinterlands will then publish the results of each battle back to the Hive blockchain

Please provide aditional info about the operation id/name

i hope game will be smoother and faster

Would a decision like this go through the SPS governance that you have indicated?

Sounds like the right decision given the node issues and constraint on growth!

Good news as always..

Seems like a fantastic step to take! Thanks for guiding the game forward safely!

Very well planned, explained, and (hopefully) executed. Let's get this "mother" to the moon 🤑🙏😎

I have no problems with those being off chain, this is a game after all and it needs to scale now.

why not make a side chain for the battleing ?

That's reasonable. The verification, and ownership of assets on the blockchain is the most important part.

What are the remaining operations that remain on the HIVE blockchain if those are the ones that are being taken off? What part of the game is staying on?

Growing pains are okay :) Keep doing what you're doing because you're good at it and know where to look. You'll be all good :D

Nice soultion. I hope this will work!
good luck to us:)

This is totally reasonable and makes a lot of sense. Great job, as always.

Congratulations @splinterlands! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You received more than 130000 upvotes.
Your next target is to reach 140000 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

Feedback from the August 1st Hive Power Up Day

Makes sense. In special because these transactions are not needed onchain to run a trustful game.

It would also make Splinterlands more flexible to add maybe rounds in battle. Like Round 1 Round 2 Round 3, to make the game more complex or add another game mode.

So in general it gives Splinterlands more freedom without reducing the security. Good changes!

Thanks for the update love the game just started. Dec and sps to the moon!

yes, i suggested that a few times already, you can scale your game servers much better and the reaction time will also improve dramatically, great move!!!

It is great that things get improve for the Splinterlands but from the struggles I was hoping that maybe some things will improve on Hive blockchain to help with that as well. This would be for me a greater achievement as through this blockchain game we help improve and innovate also the Hive core functionalities. Maybe you can publish a list with the issues and what Hive could do to alleviate those...

great news! The past few days i've had so many errors publishing my team selection to HIVE that has caused a surrender and makes it so much harder to progress in the league. Sounds like a perfectly reasonable trade-off.

Thanks for the update love the game just started. Dec and sps to the moon!

I wanted to comment but everyone here seems like they could build a node with duct tape, chewing gum and an old toaster! #imasitthisoneout 👀


The rewards earned on this comment will go directly to the person sharing the post on Twitter as long as they are registered with @poshtoken. Sign up at https://hiveposh.com.

It is okay for now I think, I would personally like to see it back on chain when its possible. I hope its not permanent