From 2a04e2af9323ea25a9c2f5171bc85ae17d4d7d56 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia <33751220+Ricardogarcia28081991@users.noreply.github.com> Date: Tue, 5 Dec 2017 10:24:44 +0100 Subject: [PATCH] Updates from Troy's comments --- _src/_guides/key-concepts-of-bigchaindb.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/_src/_guides/key-concepts-of-bigchaindb.md b/_src/_guides/key-concepts-of-bigchaindb.md index 4e0a542..f9607ad 100644 --- a/_src/_guides/key-concepts-of-bigchaindb.md +++ b/_src/_guides/key-concepts-of-bigchaindb.md @@ -30,11 +30,11 @@ Every concept that we describe (e.g. inputs, outputs etc.) has a more detailed d BigchainDB CREATE and TRANSFER transactions -The data model of transactions is explained in our [transaction model](https://docs.bigchaindb.com/projects/server/en/latest/data-models/transaction-model.html). +The data model of transactions is explained in our [transaction model](https://the-ipdb-transaction-spec.readthedocs.io/en/latest/introduction.html). # Asset -An asset can represent any physical or digital object from the real world. It can be a physical object like a car or a house or also a digital object like a customer order or an air mile. An asset can have one or multiple owners, but it can also be its own owner - think of e.g. an autonomous car or an IoT sensor that does transactions automatically. More information about the asset data model can be found in our [asset model](https://docs.bigchaindb.com/projects/server/en/latest/data-models/asset-model.html). An asset always contains the data that is immutable, like in our example the colour and the registration number of a bicycle. Depending on the context, an asset can represent many different things. +An asset can represent any physical or digital object from the real world. It can be a physical object like a car or a house or also a digital object like a customer order or an air mile. An asset can have one or multiple owners, but it can also be its own owner - think of e.g. an autonomous car or an IoT sensor that does transactions automatically. More information about the asset data model can be found in our [asset model](https://the-ipdb-transaction-spec.readthedocs.io/en/latest/transaction-components/asset.html). An asset always contains the data that is immutable, like in our example the color and the registration number of a bicycle. Depending on the context, an asset can represent many different things. ### An asset as a claim @@ -46,15 +46,15 @@ An asset can also represent a token. BigchainDB supports divisible assets. This ### An asset as a versioned document -An asset can also be a versioned document with the version state in the metadata field. The version of this document can be updated on a continuous base. Every time there is a new version of the document, it could be reflected in the metadata. For further information refer to our [blog](https://blog.bigchaindb.com/crab-create-retrieve-append-burn-b9f6d111f460). +An asset can also be a versioned document with the version stated in the metadata field. The version of this document can be updated on a continuous basis. Every time there is a new version of the document, it could be reflected in the metadata. For further information refer to our [blog](https://blog.bigchaindb.com/crab-create-retrieve-append-burn-b9f6d111f460). ### An asset as a time series An asset can also represent a time series of data. For instance, an IoT sensor records its own data. The IoT sensor is the asset and every submission of its data (e.g. temperature) is represented as an update in the metadata with the latest temperature that the IoT sensor measured. -### An asset as a finite state machine +### An asset as a state machine -An asset can also be a state machine where the state is represented in the metadata. Each time the machine changes its state, there is a transaction (possibility to listen to it with the websocket) changing the metadata to the state. +An asset can also be a state machine where the state transition is represented in the metadata. Each time the machine changes its state, a transaction is triggered to update the metadata to the new state (possibility to listen to it with the WebSocket). ### An asset as a permission (RBAC) @@ -64,20 +64,20 @@ As you can see, there are almost no limits with respect to what an asset can rep # Input -Conceptually, an input is a pointer to an output of a previous transaction. It specifies to whom an asset belonged before and it provides a proof that the conditions required to transfer the ownership of that asset (e.g. a person needs to sign) are fulfilled. In a create transaction, there is no previous owner, so an input in a create transaction simply specifies, who the person is that is registering the object (this can, but must not be the person, to whom the object will belong afterwards). In a transfer transaction, an input contains a proof that the user is authorized to "spend" (transfer or update) this particular output. In practical terms, this means that with the input, a user is stating which asset (e.g. the bike) should be transferred and he is demonstrating that he or she is authorized to do the transfer of that asset. Learn more about the structure of inputs in our [input model](https://docs.bigchaindb.com/projects/server/en/latest/data-models/inputs-outputs.html#inputs). +Conceptually, an input is a pointer to an output of a previous transaction. It specifies to whom an asset belonged before and it provides a proof that the conditions required to transfer the ownership of that asset (e.g. a person needs to sign) are fulfilled. In a CREATE transaction, there is no previous owner, so an input in a CREATE transaction simply specifies who the person is that is registering the object (this is usually the same as the initial owner of the asset). In a TRANSFER transaction, an input contains a proof that the user is authorized to "spend" (transfer or update) this particular output. In practical terms, this means that with the input, a user is stating which asset (e.g. the bike) should be transferred and he is demonstrating that he or she is authorized to do the transfer of that asset. Learn more about the structure of inputs in our [input model](https://the-ipdb-transaction-spec.readthedocs.io/en/latest/transaction-components/inputs.html). # Output -A transaction output specifies the conditions that need to be fulfilled to acquire ownership of a specific asset. For instance: to transfer a bicycle, a person needs to sign the transaction with her private key. This also implicitly contains the information that the public key associated with that private key is the current owner of the asset. Learn more about the data model of outputs in our [output model](https://docs.bigchaindb.com/projects/server/en/latest/data-models/inputs-outputs.html#outputs). +A transaction output specifies the conditions that need to be fulfilled to change the ownership of a specific asset.. For instance: to transfer a bicycle, a person needs to sign the transaction with her private key. This also implicitly contains the information that the public key associated with that private key is the current owner of the asset. Learn more about the data model of outputs in our [output model](https://the-ipdb-transaction-spec.readthedocs.io/en/latest/transaction-components/outputs.html). -Note that a transaction can also have multiple outputs. These are called divisible assets. To learn more about divisible assets, complete our [tutorial.](../tutorial-token-launch/) The output can also contain complex conditions (e.g. multiple signatures of multiple people) to acquire ownership. Learn more about that in the data model for [cryptoconditions]( https://docs.bigchaindb.com/projects/server/en/latest/data-models/conditions.html). +Note that a transaction can also have multiple outputs. These are called divisible assets. To learn more about divisible assets, complete our [tutorial.](../tutorial-token-launch/) The output can also contain complex conditions (e.g. multiple signatures of multiple people) to acquire ownership. Learn more about that in the data model for [crypto-conditions](https://the-ipdb-transaction-spec.readthedocs.io/en/latest/transaction-components/conditions.html). # Metadata -The metadata field allows to add additional data to a transaction. This can be any type of data, e.g. the age of a bicycle, the kilometers driven etc. The good thing about the metadata is that it can be updated with every transaction. So, in contrast to the data in the asset field, the metadata field allows to add new information to every transaction. Additionally, with the release of BigchainDB 1.3, we introduced the ability to query for metadata. Read more about that on our [blog.](https://blog.bigchaindb.com/bigchaindb-version-1-3-7940cc60c767) +The metadata field allows one to add additional data to a transaction. This can be any type of data, e.g. the age of a bicycle, the kilometers driven etc. The good thing about the metadata is that it can be updated with every transaction. So, in contrast to the data in the asset field, the metadata field allows to add new information to every transaction. Additionally, with the release of BigchainDB 1.3, we introduced the ability to query for metadata. Read more about that on our [blog.](https://blog.bigchaindb.com/bigchaindb-version-1-3-7940cc60c767) # Transaction ID -The ID of a transaction is a hash that identifies a transaction in a unique way. It contains all the information about the transaction in a hashed way. Find out more about the cryptography BigchainDB uses [here.] (https://docs.bigchaindb.com/projects/server/en/latest/appendices/cryptography.html#hashes) +The ID of a transaction is a hash that identifies a transaction in a unique way. It contains all the information about the transaction in a hashed way. Find out more about the cryptography BigchainDB uses [here.](https://the-ipdb-transaction-spec.readthedocs.io/en/latest/common-operations/crypto-hashes.html) That's it! Now you are familiar with our transaction model and you are ready to complete our first [tutorial](../tutorial-car-telemetry-app/) and get started on BigchainDB!