Hi Community,
I am writing you to give you a short overview of what we have done so far, why we have done it, and what (from our point of view) still has to be done - and when. I have been moving to a new town in the last days, so
First of all, we had a last-minute idea - the idea of introducing so called super nodes. The reasons were:
1. Since earlier everyone had to verify work, we were very limited: we had very strict constraints regarding the complexity and memory requirement of work packages, simply due to the reason that the weakest node still has to be able to verify everything in a reasonable amount of time. Otherwise, netsplits or node shootdowns would be possible with complex long running tasks. With super nodes we are more flexible: we can set strict requirements that a super node's hardware has to meet and so can allow programs that run longer and use more memory.
Supernodes are basically nodes that do the verification and have no incentive to cheat due to a huge deposit. Contrary to other "well hyped solutions" we do not rely on trust at all ... all calculations and decisions that the super nodes perform can be publicly verified by anyone. For example by the so called guard nodes. These are nodes that randomly cross-check a small fraction of jobs. If they detect that a super node lied, its deposit gets forfeited.
2. Also, earlier a bug in the implementation (causing an infinite loop for example) could halt the whole network since every node is execution the task. Now, the network is safe from this. Also, the super node software will have emergency stop mechanisms that would prevent bugs to crash anything. Again, this design has several benefits here. It's better if one supernode freezes for 15 seconds before it detects the anomaly than if every node in the network freezes for 15 seconds.
3. Also, and this is a PR benefit, the earlier design effectively executed foreign code on the own hardware. While it's super safe due to Elastic PL's nature (our own programming language that does not allow to program anything dangerous), managers who want to use Elastic in their commercial setting might get scared. Now, nobody but the supernodes has to execute anything.
So where are we?
--------------------
We have the code base done that incorporates the new logic into the core client. The supernode functionality is there (except one little detail still missing - the guard node logic). And we have the miner done which - since super nodes and miners execute the same code - can be used for both.
What is missing with deadline dates
----------------------------------------
The following packages are still missing and are planned (not promised) to be finished as follows (London time):
09.02.2017 - The core package with guard logic is finished and goes into code-review mode
12.02.2017 - The supernode extension was added to the miner so that it can be used to verify work of others
13.-14.02.2017 - I am offline
17.02.2017 - Guard node software is finished. Parallely, everything goes into testnet mode for heavy testing
18.02.2017 - Open discussion round here, about how things are working out and specially about the retargeting algorithm that we currently have (there were ideas how to get rid of it)
18-24.02.2017 - Grace period to fix problems that we found in the test net
26.02.2017 - I will have written all details about the system down (both technically and non technically) for those guys of you, who are responsible for the PR parts (website, video, whatever)
27.02.2017 - Last discussion here in the thread
28.02.2017 - Milestone freeze, first ready-to-use version should be finished by then. I (and all the others that work on the code) am/are just (an) interested code monkey/s who love/s fascinating tech. We will not launch anything, we just give the code to the community, so if the community thinks the system (that we suggested) is good, just launch it yourself by using it! Remember: we are doing it for you guys, and not to run a company or something by ourselves. Just do with it whatever you like.
Disclaimer
----------------------------------------
We do not run anything, we do not take responsibility for anything. We code because we love coding, and if in doubt just suggest the appropriate changes and we can figure things out. Nobody forces anyone to use anything, and nobody promises anything. We code as good as we can, ... to reduce the likelihood of bugs (which always may or may not occur) we would appreciate to get more eyes on the code. Also: if you think you can do it better ... then just do it!
After everything works out, I am sure we can think about new cool features that pop into our heads.
so that means 1st of March, the community can release it the mainnet.
then some Chinese exchange will list it.