AFAIK we have all the features we need for testnet/Fleming in place. We are looking at making some containers more complaint and error free, but it’s all small tasks of varying lengths. So you will see some boring updates in the line from now till testnet at least. Wee techie bits and bobs, but all cleanup and testing.
So here’s a 10,000 foot view.
We had a codebase that was based on parsec and worse that that stuff like timers, poor error handling and severe lack of real world tests. We attacked that recently and put the design right again.
So we have that done now, the path is clear and most stuff exists as we would imagine it would in production. So great news.
What we do now for speed is end 2 end (e2e) tests. So imagine a car, you test the carb, the wheels, the engine etc. and you should. What e2e means for us is we are running up networks, so saying yip the car works, everything must be Ok. So good and bad.
There will be bugs, there always will. We probably have bugs in our carb that we are not noticing, they could have long term implications.
So this is where we are. We are getting the whole thing up and running, making small tweaks to data container types in the code to test them with known mathematical properties to see if they hold up to those properties and then we have proofs they are as the papers and research suggest they should be (i.e. not perfect, but have properties we can rely on being true).
At the same time we are also testing the smaller bits that are not well tested right now. The data types, crdt tests are vital there and we will use quickcheck and proptest to test for random failures, We don’t want to run networks with a seeded random number generator (yes we were doing this insane thing) but we do want effective property based testing and fuzz testing to ensure vast amounts of stress are put on the components we have written.
While this is all happening an e2e test will look “good enough” for community bashing it about and we will package that and say, here is a testnet, it’s all the Fleming properties, but we are rushing though Qa on this, can you help.
That’s how close we are, so no milestones as such (upgrades perhaps), but pulling all the pieces together and testing the whole thing but also increasing code quality and testing in each smaller component.
Hope that helps?