Skip to content

Initial release 0.1

Latest
Compare
Choose a tag to compare
@Mingela Mingela released this 20 Mar 13:53
· 10 commits to master since this release
74a6e05

Business Rules Validation Service is a standalone service used to validate user's Iroha transactions before arriving to an Iroha peer via shared signatories. This means that BRVS keys set is a part of each user signatories.

Hyperledger Iroha is the ledger, which is used for voting (via multisignature accounts) and decentralized data storage. Iroha Java Library is used to interact with Iroha peers.

This release has the following features:

Rules and validators

Rule is a sort of a business restriction description. Validator is an entity capable to apply some logic of the rules combinations.
BRVS has several rules hardcoded for demonstrations but a one is free to add rules implementations freely.
All the service components (like Rules) configurations are expected to be expressed via Spring XML configuration.

Safe and consistent rule verdict outcome

BRVS implements a mechanism to form queues of transactions for each user account and 'consume' them for checking on time to prevent inconsistent Iroha state from the business logic perspective. BRVS waits for user keys first to be attached to transactions first. Moreover, it provides a user blocking mechanism based on transactions results observing to restrict a user from sending multiple transactions at a moment.

Registration of user accounts

BRVS instance is able to scan a specified Iroha account details for a list of existing accounts to register on startup.
BRVS registers any new accounts created in Iroha if theirs domains conform to the preconfigured ones.
Additionally BRVS can register an account via REST API.

Verdict storage

BRVS stores its decisions about every user transaction (based on Rules and Validators) that can be queried through REST API.

REST API

BRVS provides REST API for both registering users manually and querying verdict records. Examples of API calls can be found in README.