Today, OriginTrail developer Vladimir dropped by on the OriginTrail telegram chat and had a short discussion with some community members. He opened his discussion with a short recap of the monthly report:
Protocol Development: Beta Program Progress Report
The launch of the OriginTrail Decentralized Network (ODN) testnet represents the beginning of our beta program which will last until the launch of the OriginTrail mainnet. The purpose of the beta program is to gain as much insight as possible into the operation of the nodes and the network in different node environments and network conditions, both in terms of the ODN as well as the blockchain. By participating in the beta program, you help our team enormously by observing and reporting visible issues with the operation and user experience of your node. You are also helping indirectly because automatic logs about your node are sent to our analytics tools, which lets us analyse information on a daily basis. It is important to note that, even when the beta program ends, the testnet will stay live as a free development environment for anyone wanting to build on OriginTrail, much like how the various testnets of Ethereum are used.
So far, we have released several versions of the node client to test out different scenarios in the network setup. Some of these have introduced significant changes which we have been communicating with active node holders through our beta program channels, mainly Discord. One month into the beta program, we have observed several interesting KPIs, such as the number of nodes present on the network, which peaked at 174. Our team has been running additional tests with spawning significant numbers of our own nodes as well, in order to run simulations at different scales of the network. The testnet is therefore being exposed to periodic data uploads which are used to test out the bidding mechanism, replication and reading capabilities. So far, the success rate of finalized offers has been very high (above 90%), taking into account that several important changes have caused the network to be in a state where all offers can not be completed. Additionally, we have observed a very low number of litigation procedures, which is measured in single digit numbers per day.
One important note is that the market conditions are still not very insightful, as the network itself is operating with test tokens and test ether. The focus right now is to ensure the proper operation of underlying mechanisms that should enable a stable environment (and thus, market). Therefore, the main targets for the upcoming period of the beta program is to further secure network stability and lower the transaction costs associated with interactions with the blockchain. The team is already working on a solution that will be able to lower the amount of transactions, minimize the amount of transactions that do not result in compensation, optimize smart contracts and introduce further flexibility in the protocol. We will be publishing updates and documentation in the coming weeks which will explain improvements to be introduced.
We are also working on the existing codebase to make it more flexible, scalable and, above all, failure-resilient, as the stability of the nodes in the production environment (main network) will be a top priority. We released several minor releases during July and we are currently working on a major update of the code, which will introduce a command sourcing pattern — a very significant improvement. Click here to read the monthly report.
Community member Snapper asked Vladimir some questions:
Snapper: Thanks Vlad, for those of us less tech savvy. What is a “command sourcing pattern”?
Vladimir: It is a very cool thing. It means that we are making every single operation of the node as command and then we can track if command is executed, and if not, we can replay it. So for example, you restart the node in the middle of something. When you start it again, it will detect and redo.
Snapper: so that means if there is a problem somewhere you can find the problem more easily?
Vladimir: Yes, an easier programming as well. But not only that. It means that you don’t loose stake 🙂 Also it prevents all possible problems that may apear if you have corrupted database. Actually it prevents corrupted database. So it is very important. But will also speed up development significantly. There are so many numerous benefits of this approach.
Kirk: What is a litigation procedure ?
Vladimir: Litigation procedure is when one node is trying to trick another node, then the Smart Contract will judge which one is honest. For example we run offer on one, then start to kill and restart all of the nodes and they completely recover.
Snapper: So how many databases are you using in total then?
Vladimir: Just two – Arango for data and Sqlite for system information.
Snapper: I think someone a while back was asking about level up / level down… is that still present or did it change since then?
Vladimir: Yes, it was in the beginning. We replaced it with Sqllite. So no Level up / Level down anymore. We needed relational database.
Snapper: Do you intend on removing the dependencies for the other database libraries from the package.json at all?
Vladimir: Yes, we do some maintenance once in a while. For next major release for sure!