Hyperledger Composer is an extensive, open development toolset and framework to make developing blockchain applications easier. Composers primary goal is
to accelerate time to value, and make it easier to integrate your blockchain applications with the existing business systems. Composer can be used to rapidly develop use cases
and deploy a blockchain solution in weeks rather than months. Composer allows you to model your business network and integrate existing systems and data with your blockchain applications.
Hyperledger Composer supports the existing Hyperledger Fabric blockchain infrastructure and runtime, which supports pluggable blockchain consensus protocols to ensure
that transactions are validated according to policy by the designated business network participants.
Everyday applications can consume the data from business networks, providing end users with simple and controlled access points.
Hyperledger Composer can be used to to quickly model your current business network, containing your existing assets and the transactions related to them; assets are
tangible or intangible goods, services, or property. As part of your business network model, you define the transactions which can interact with assets. Business
networks also include the participants who interact with them, each of which can be associated with a unique identity, across multiple business networks.
What are the key concepts of Hyperledger Composer?
All transactions submitted through a business network are stored on the blockchain ledger, and the current state of assets and
participants are stored in the blockchain state database. The blockchain distributes the ledger and the state database across a
set of peers and ensures that updates to the ledger and state database are consistent across all peers using a consensus algorithm.
Hyperledger Composer uses Connection Profiles to define the system to connect to. A connection profile is a JSON document the is part
of a business network card. These profiles are usually provided by the creator of the system they refer to and should be used to create
business network cards in order to be able to connect to that system.
Assets are tangible or intangible goods, services, or property, and are stored in registries. Assets can represent almost anything in a business network, for example, a
house for sale, the sale listing, the land registry certificate for that house, and the insurance documents for that house may all be assets in one or more business networks.
Assets must have a unique identifier, but other than that, they can contain whatever properties you define. Assets may be related to other assets or participants.
Participants are members of a business network. They may own assets and submit transactions. Participant types are modeled, and like assets,
must have an identifier and can have any other properties as required. A participant can be mapped to one or multiple identities.
An identity is a digital certificate and private key. Identities are used to transact on a business network and must be mapped to a participant in the
business network. A single identity is stored in a business network card and if that identity has been mapped to a participant, it allows the user of that
business network card to transact on a business network as that participant.
Business network cards are a combination of an identity, a connection profile, and metadata, the metadata optionally
containing the name of the business network to connect to. Business network cards simplify the process of connecting to a
business network, and extend the concept of an identity outside the business network to a 'wallet' of identities, each associated
with a specific business network and connection profile.
Transactions are the mechanism by which participants interact with assets. This could be as simple as a participant placing a bid on a asset
in an auction, or an auctioneer marking an auction closed, automatically transferring ownership of the asset to the highest bidder.
Queries are used to return data about the blockchain world-state. Queries are defined within a business network, and can include variable parameters for
simple customization. By using queries, data can be easily extracted from your blockchain network. Queries are sent by using the Hyperledger Composer API.
Events are defined in the business network definition in the same way as assets or participants. Once events have been defined, they can be emitted by
transaction processor functions to indicate to external systems that something of importance has happened to the ledger. Applications can subscribe to
emitted events through the composer-client API.
Business networks may contain a set of access control rules. Access control rules allow fine-grained control over what participants have access to what
assets in the business network and under what conditions. The access control language is rich enough to capture sophisticated conditions declaratively,
such as "only the owner of a vehicle can transfer ownership of the vehicle". Externalizing access control from transaction processor function logic makes
it easier to inspect, debug, develop and maintain.
The historian is a specialized registry which records successful transactions, including the participants and identities that submitted them. The historian stores
transactions as HistorianRecord assets, which are defined in the Hyperledger Composer system namespace.
Use the Hyperledger Composer Sandbox to try Hyperledger Composer for a test drive without having to install anything