All objects are stored using the ObjectStore. Each object in the ObjectStore has an attribute object-type and an object-id. Each type of object (organization, participant, bond, etc.) has an object-type associated with it. Each object has an object-id, which is a sha256 hex digest.
ObjectStore is backed by a key/value database. The storage key used is the object-id, with the value being the object data.
For each object-type, the ObjectStore maintains a list of indexes associated with it. So, for example, the ‘bond’ object-type has an ‘isin’ index which can be used to lookup bonds by their ‘isin’ attribute.
The object-id is a 64 character string. In the sections that follow, we represent that string with OBJECT_ID for documentation purposes (the long string would often fall off the right side of the page). The object-id would never actually be set to the string literal ‘OBJECT_ID’.
The following attributes are commonly used:
- The identifier of the signing key on the transaction which created the object. In some instances, this is used to control authorization on operations associated with the object.
The object’s unique identifer, a 64-character string, as described in ObjectStore.
- The number of other objects referencing this object. This is used primarily to determine if the object can be safely deleted.