I'm not really interested in spending time debating this topic with Andrachy because he is not a dev who understand the details about these systems. Nothing he's said since changes my mind on this subject. I just felt compelled to respond briefly because you directly asked me to.
I've written about the reasons for our approach from early on and my reasons why I think that layer 1 smart contracts are bad. From his latest response referencing this as a "missing feature", it is clear that he's never bothered to read that even. This doesn't surprise me, but I think it's a mistake to attack our architecture without even reading the design ideas that led to it.
Finally, I do think he's biased on this subject, and I think it is fair game to mention it. And yes, he can point out that I'm a large stakeholder in Hive, but that is ultimately because I believe in the design, not vice-versa. So a more accurate description of my bias would be "it's my design".
I am biased as well, but it seems to me that with the implementation of HAF, Hive's layer 1 seems very close to "complete". You will have removed the need for developers to even know how to interact with the blockchain and they can now just code in the language that is familiar to them. This is only going to lead to an explosion of layer 2 development.
And layer 2 development can happen so much faster than layer 1 development. We are going to really kick it up a notch in terms of development speed. It is going to be fun to watch.
I am excited for the work you plan to do after the hardfork and am curious to see how fast things are able to move on layer 2.
here is a really stupid question, but what exactly is layer 2? 😅 It's obviously not layer 1 (so it's code not running on the main chain), but where is it stored then? I guess on a side chain, but how does that operate; who validates the blocks, who runs the nodes? And how does layer 1 and 2 interact?
Can you clear that up?
I will start by saying I am not a developer or even remotely close so assume part of what I am about to say is wrong. I have been listening and reading for the last 5 years though, so part of it will be correct.
The short answer to your question is it depends on the layer 2 application. All layer 2 applications will utilize layer 1 in some form (otherwise it would just be a stand alone application like current web 2 apps). The layer 2 app can be centralized or decentralize. It can be open sourced or it can be close sourced. Hive-Engine is a layer 2 application. Splinterlands is a layer 2 application. Peakd is a layer 2 application.
The goal is to keep layer 1 as lightweight as possible so the blockchain as a whole is easiest, fastest, and cheapest to run, and most importantly, scalable.
Having everything on layer 1 would bloat the chain. This is one reason some chains have high gas fees. By being lightweight, Hive is able to have no fees (except replenishable RCs). This allows for economical gaming and micro-transactions.
Having more on layer 2 also ensures there are less hardforks, which in addition to keeping the network secure and up-and-running, this should be a nice and marketable feature to exchanges, who probably don’t appreciate needing to constantly upgrade things on their end. I haven’t seen this discussed, but I think this would be a huge selling point for the likes of coinbase, etc.
Since layer 2 doesn’t require hardforks, development can also be faster.
thanks for the reply!
I guess I still have questions regarding the technical stuff (i.e. how do they interact etc.) but probably this would be too technical for me anyway. But I am getting the picture :)
Most, if not all, write to the blockchain as custom JSONS. The application can then read these custom JSONS to track what they want to track (e.g. Splinterlands card sale, etc)
thanks, that clarified things!
Here's a quick summary: user actions are saved onchain but the computations associated with those actions are computed offchain (i.e. not by hived nodes but by 2nd layer app code). Since all the data necessary to reconstruct the state of the 2nd layer app is stored onchain, the 2nd layer ecosystem is decentralized as long as the app is open-sourced because you could run the 2nd layer app code on your system and get the same results as anyone else would, hence there is no centralized server required.
thanks that helped :)
thanks for clearing that up and taking time to respond. I was just curious as to some of the arguments that were put forth on either side to understand the issue better (since I am myself not a dev). I really appreciate all the work you and your team is doing (and the many other devs on the chain), and see a bright future for Hive :)