published on March 24, 2025 in devlog
Michi talks about the steps that are necessary to form an infrastructure upkeep contract.
Michi (molp)
I ended devlog #474 with the sentence: The next steps are to connect motions, contracts and the shared stores, so that a government can appoint a contractor that is responsible for the upkeep.
That is exactly what I’ve been up to lately. I implemented a new motion type dedicated to infrastructure upkeep. In the screenshot below, you can see the rather long description text. So, let's talk a bit about the parts.
An infrastructure upkeep motion will appoint a company to provide the infrastructure's upkeep for a certain duration. Since an upkeep phase is one week long, the government can specify how many weeks the resulting contract should encompass. To make it easier for governments and upkeep contractors to plan ahead, it is possible to define in which upkeep phase the contract should start. Upkeep phases are identified by a counter that increases with each update phase. Then of course, we have the actual infrastructure that the motion is about. The service level objective is another key element: It determines how long the infrastructure needs to be operational within each upkeep interval. In one of the last devlogs I mentioned that an infrastructure will stop working if the upkeep for a phase is not present. The resulting contract condition will be violated if the service level objective is not met. Finally, the payment for each upkeep phase is defined.
This motion will result in several pairs of upkeep and payment conditions, determined by the duration above:
I’m still working on the upkeep conditions, as they work slightly differently from other contract conditions. Take a shipping contract, for example. As soon as the contract is closed (accepted) the deadlines start, e.g., the deadlines are relative to the timestamp when the contract was accepted. The relative timing doesn't work well for upkeep contracts, as the conditions need to align with the actual upkeep phases. So, I’m currently in the process of creating a framework for contract conditions that are based on absolute timestamps instead of relative ones.
As always, we'd love to hear what you think: join us on Discord or the forums!
Happy trading!