Versioning

The Builder Vault product consists of several components such as SDKs, MPC node servers, and databases. The overall product has five versioned interfaces, each one with its own semantic version number. Changes in these interfaces may require different kinds of actions when upgrading, as explained below.

InterfaceDescription
Client API (SDK)This is the programming interface that is exposed via the Builder Vault SDK. This includes both the Go, Node.js and Java SDKs, as well as the mobile Android and iOS SDKs and the native library SDK. A major update to the Client API interface means that your application, which uses one of these SDK, may need changes.
Node ConfigurationThis version covers the configuration and deployment of an MPC node in the Builder Vault. A major change in this version means that you may need to make changes to the MPC node configuration files in your deployment.
Node CommunicationThis is the versioning of the communication protocol used internally between the MPC nodes. When the MPC nodes in the Builder Vault jointly execute an MPC protocol, for example in order to generating a threshold signature, the MPC nodes must agree on the major version of this interface. Consequently, if you upgrade to the Builder Vault to a new major version of this interface, all the MPC nodes must be upgraded in one go in order for the system to remain operational.
Client (SDK) CommunicationThe communication protocol between a client (SDK) and the MPC node to which it connects, has its own version. If you upgrade an MPC node to a new version of this interface that only contains minor or patch changes, you can still use the old SDK to connect to the upgraded MPC node. But if there is a major bump in the client communication interface, you may need to upgrade the SDK as well, before it can connect to the upgraded MPC node.
DatabaseThe format of the database used by each MPC node has its own version number. When an MPC node is upgraded to a new database version, the existing data will have to be upgraded. This happens automatically, the first time the upgraded MPC node starts up and connects to its database. See this section for more about database upgrades.

The Overall Version of Builder Vault To make things a bit easier, we assign a single semantic version number to the overall Builder Vault product. This version is a conservative combination of all the versions above. This means that if any of the above interfaces contains a major bump, then the overall Builder Vault version will also contain a major bump. If there are no major bumps in any of the above interfaces, but only changes in minor version numbers, the overall Builder Vault version will also only increase its minor version, and so on.

The list of Builder Vault releases can be found here.


What’s Next