Multi-chain is a blockchain-based framework supporting the model-driven methodology of complex business processes. It allows the specification of a process using BPMN Choreography diagrams automatically passing to the implementation relying on the blockchain technology.
The main peculiarity is the multiple-blockchain approach that allows flexible implementation of the process depending on the desired requirements. Indeed, we support a large set of properties thanks to the use of two blockchain technologies:
1) Ethereum (permissionless): auditing and trasparency
2) Hyperledger Fabric (permissioned): privacy and confidentiality
Starting from a single choreography model it is possible to choose in a second moment, the final implementation by selecting Ethereum or Fabric as the target platform. In both cases, the process will be converted to a smart contract that will be then deployed inside the Etehreum network or inside the Fabric private network. In this case in addition to the contract, also the entire network will be created, composed only by the participating organizations defined inside the model.
The first page handles the Sign-up and Sign-in functionalities.
The Sign-up requires only a username and a password that will be used to identify the user inside the platform. The account will be also used to subscribe to a role inside a process instance.
Through the log in the user can log into the system, the only requirement is to insert an already registered account that must match the credentials registered in the sign-up phase.
Multi-chain offers also the possibility to model the choreography diagram directly into the tool modeler.
The modeler works like most of the others BPMN tools, in addition, it supports the insertion of information through the use of an intuitive panel, double-clicking the wanted task.
The panel makes easier the process of filling the model in a translator-suitable way. Indeed, each message must be written in the structure function_name(input_type input_name), where:
- Function_name represents the message name
- Input_type is the type of the exchanged information through the message
- Input_name is the name of the information
In case that the choosen message is a payment function, so it sends ether from a participant to another, it’s just necessary to check the box and automatically the modeler generates it.
The other forms are used to fill in the participants and the name of the task. Once created, it’s also possible to upload the model directly into the system repository with the Save Model option.
The Multi-chain home page contains the repository for the models, that are visible on the left side of the page. Clicking on one of them general information about the model is shown, like the creator and the roles of the model.
At this point, it is possible to choose between Fabric or Ethereum instances that will be listed below. Depending on the chosen sone information will be shown like the creator account, the instance ID, the available roles in the instance, and the actual number of subscribed users. At this point, two main operations are available: Create instance and Subscribe.
This function will show a panel that consents to make two operations. The first allows the user to select the choreography roles that will become optionals while the second makes the instance visible just for the inserted addresses (for Ethereum instances). Once compiled (or not) the instance will be created and will be visible on the home page.
To subscribe to an Ethereum instance, the user can cover a role and take part in the choreography. This is done by connecting its Metamask wallet and selecting a role to cover. Automatically, the tool will associate the actual Metamask account to the registered user. If a role is still vacant (so it’s optional) the user can cover it by calling a dynamic subscription through a smart contract function, made visible in the interface (for Ethereum instance).
For a Fabric subscription is only necessary to select a role to cover, without any external tool. This because the network is created dynamically, creating also the credentials for the user that needs to participate.
When the maximum number of mandatory participants is reached (so every role is covered) the deployment will automatically start, translating the model to a smart contract executed in the Blockchain
Each user can access the execution page related to Fabric or Ethereum execution that contains all the active processes on the Blockchain visible on the left side of the page.
Clicking on one of them the relative model will appear, in which the active message is highlighted in green. In the center of the page, the enabled message generates the function form, however, only the participant with the associated role can trigger it. Indeed, if the user doesn’t cover the role actually involved he can’t see the input form.
For Ethereum, a Metamask transaction will be generated, waiting for confirmation from the user. To see the previously exchanged information it is necessary to double-click a message and the right-side panel will show the desired data.
For Fabric instead, a smart contract transaction will be sent without requiring any other interaction. Also, in this case is not possible to see every information exchanged but each user has visibility only on the messages direclty sent or received.