Cardax blog




Tech Update Week 19: Tough Budget Bug, Off-chain and Bot


As we follow along our precise timeline, this week was all about writing and improving code. We now have a quite good and stable shared developer environment with all required services running for the public testnet (remember, all the zillion of web services which must work together). This allows us to test our changes to the off-chain code fast and easily – in a real environment.
What is rather annoying, since it is a pretty tough bug for a long time already: The pre-computed budget for transactions is rejected by the Cardano node. The issue is, that you can use the Cardano library to compute the budget for a transaction beforehand, but when you use the computed budget to submit the transaction to a real node (i.e. to the public testnet), the node rejects the transaction with stating the provided budget is too low. This bug now persists, most surely there are multiple bugs, for a long time and a lot of resources has been put on the effort to resolve it. Our original estimation was to have it resolved this week.

The urgency of having this bug resolved is very high. Since any meaningful real testnet testing relies on having the budget computed correctly. This means that we needed to shift tasks which have a dependency to the working of the budget estimation – most of them are testing tasks.
So in essence, a special task force is trying to resolve this bug, and the other team is continuing on completing off-chain code for the CTL (re-write in PureScript) and tests – and a new logistic bot.

This is the other decision which was made: Instead of offering logistical tasks which are required to keep the Streaming Merge protocol running (i.e. merging, execution and ending cycles) to the UI and user, we decided to go for the solution to create a bot who will do it. The reasoning is that, in case we offer the buttons to the UI, a user will never win against an automatic bot and therefore the buttons would be useless (as in: only educational).
Please remember that, since Streaming Merge is deterministic, these bots can be run by anybody (i.e. it does not need to be a trusted, selected group). This is because the on-chain code does not allow misusing the ability to do the logistic steps.

Our front-end team is now adapting to the Streaming Merge. We are re-design parts of it for a better UX.

Our GitHub statistics hint that we tried hard to fix the mentioned budget bug in the blockchain contracts repository in order to unblock the planned tasks. And the blockchain services repo shows that we reached a stable state for now.

Blockchain contracts repository.
Blockchain services repository.

Haskell & Plutus Developer at Cardax

Comments 0
There are currently no comments.