Primary Maintainer: Brian Smith ([email protected])
Crate | Linux | Windows | OSX | Coverage | Issues |
---|---|---|---|---|---|
| API Documentation | SAFENetwork System Documention | MaidSafe website | Safe Community site |
#Overview
The maidsafe_type library defines all types of data stored on maidsafe network. MaidSafe network enables the user of the data to verify the integrity of data, whether it is mutbale or immutable.
On MaidSafe network, most data are represented as Immutable Data. The integrity of the contents of an Immutable Data can be verified by checking the hash of content to be the address on the network where data is stored.
If data needs to be mutated it is represented as structured data. The structured data can hold a limited history of data updates.
Id types represent information associated to an identity on the network. The Id types can be secret or public. The secret Id types hold sensitive information and are never stored on network. Each secret Id has a corresponding public Id type which is stored on the network. The secret and public part of the Id are used to offer asymmetric cryptography services.
Secret revocation Id types are never stored on network. These Id types are used on creation of Public Ids and also they can be used to revoke their corresponding public-private keys if is required.
Similar to revocation Id types, secret Id types are not stored on network. The secret Id types have private and public part of signing and encryption keys associated to an identity.
Public Id types represent the public part of the secret Id types and their integrity can be verified by revocation id signed information. Moreover, the address a public id type is located on network is the hash of its contents, which can also be verified. A public Id type can be revoked by revocation id type, if required. To revoke the public id, the revocation id type sends a signed update request to the public id type. The update is performed to make the hash of the contents not be equal to its address and/or change signature to be not equal to a valid signature. Any further access to the revoked public id type then results in inregrity / validity check.
###Pre-requisite: libsodium is a native dependency for sodiumxoide. Thus, install sodium by following the instructions here.
For windows, download and use the prebuilt mingw library. Extract and place the libsodium.a file in "bin\x86_64-pc-windows-gnu" for 64bit System or "bin\i686-pc-windows-gnu" for a 32bit system.
#Todo Items
-
Remove anonymous public types
-
Modifications to Id types
- MAID-1029 Remove name from types to enhance type invariance
- MAID-1035 Add a member of signature type to Id types. The signature in pure keys is sign_using_own_private_key(public keys + type tag). And in dependent keys, is sign_using_owner_private_key(public keys + owner public key + type tag)
- MAID-1041 Remove maid_signature and mpid_signature from PublicMaid and PublicAnMaid
-
[MAID-1115] (https://maidsafe.atlassian.net/browse/MAID-1115) Update StructuredData
-
[MAID-1116] (https://maidsafe.atlassian.net/browse/MAID-1116) Create 2 new ImmutableData types
-
MAID-1036 Add SafeCoin type with entries i) type tag ii) name iii) owners iv) previous owners, and v) signatures. Implement and test Sendable, Encodable, Decodable, PartialEq and fmt::Debug traits for SafeCoin type. Merges MAID-1044 to a single unit of work.
-
MAID-1119 Implement TypeTag for StructuredData type.
-
MAID-1056 Write tests to confirm invariants of all types
- Update version in line with routing.
- Add account type tags for PayLoad.
- Add MSID type for shared data.