TAIBOM SDK Architecture
Conventions:
- TAIBOMS MUST ALWAYS use relative paths or PUBLIC (and resolvable) uris
- Although the paths will resolve, where this breaks is if the data / code / system is moved, we then lose "sight" of where the TAIBOM is referencing the subject.
- Schemas will need updating to add this rule
- TAIBOMS SHOULD have a folder in the parent directory of the system
- Therefore if the subject is moved, the taiboms should move with them, and hence the relative paths should resolve
- /SYSTEM_OR_DB/
- /TAIBOMS/
- TAIBOM_GUID_1
- TAIBOM_GUID_2
- file_1
- /dir_1/
- sub_file_1
- TAIBOMS which calculate hashes (i.e. Data, Code) SHOULD include directory metadata, but only provide a warning if the metadata does not resolve
- A metadata hash should be calculated for nested directories
- A metadata schema can be appended to the VC to give human-readable context about the parent directory / target file
- The TAIBOM SDK MUST register the key / email pair with a TAIBOM specific DID registry
- NquiringMinds will host a DID registry for identities to be registered to
- Any DID registry can be created and used if you do not wish to explicitly trust the NquirirngMinds TAIBOM did registry
- There is scope to extend this DID registry to provide a public address to a TAIBOM SDK API endpoint
SDK API
The TAIBOM SDK API should provide an API endpoint for resolving hashes created by a TAIBOM Identity. When the SDK is installed on a user's machine to be used to create TAIBOMs it exposes this API endpoint on the user's machine.
Proposed Architecture
GUID, HASH table
This database serves as a hash resolution mechanism for TAIBOM, ensuring that hashes linked to specific GUIDs can be looked up efficiently.
- taibom_guid acts as a unique identifier for an entity in the system.
- vc_hash is the hash value derived from a Verifiable Credential (VC).
- vc_filepath stores a reference to the physical Verifiable Credential (VC).
- resolvable indicates whether the stored hash can be resolved or not. A file-watcher agent can be used to determine if the directory has been moved / deleted - and potentially attempt to resolve this, it can also be used if the VC has become detatched from the component it is referencing.
- resolve_data_hash() and resolve_code_hash() provide methods to verify or retrieve information linked to the stored hash, these functions are likely to be identical - so consider a single method resolve_taibom_hash()
TAIBOM SDK usage
Each time a taibom is created (using the SDK), the GUID, HASH table should be updated to include these TAIBOMS.
note
There should be scope to provide a method of adding TAIBOMS which were not generated using the SDK.
Resolving hashes (universal function)
Integration with an Inferencing Engine
Integration with an inferencing system should be as straighforward as the current implementation model used in TrustNetz