Business applications in a blockchain
In a proof of concept (PoC), we sought to find out whether, and how well, it is possible to communicate with a blockchain from Java. It specifically entailed extending the Scout Contacts demo app so that money can be transferred from one person to another in just a few minutes (worldwide). Towards that end, we interacted with the Ethereum blockchain. It stands out through the additional concept of smart contracts and is therefore of particular interest for our customers.
The integration of existing IT solutions and landscapes with blockchain is not a trivial matter. Neither is the choice of the right blockchain. Added to this are the identification and prioritization of a useful use case and verification of the feasibility in the form of a proof of concept (PoC) and the efficient development thereof with a high degree of technological sophistication.
What solutions are there?
The market has grown very dynamic. There are a multitude of virtual currencies to choose from, from Bitcoin to Ethereum, and countless others, as well as various competing blockchain technologies (Ethereum, Bitcoin, Hyperledger, etc.). Which ones will be successful? And then there is the choice between private and public blockchains. We recommend conducting a feasibility check of the various use cases by means of a PoC.
After observing the market and technology in detail, at BSI we chose the Ethereum open source blockchain. It is freely available and has attained a high level of maturity. There are numerous possibilities to connect the Ethereum blockchain with the Eclipse Scout business framework. Furthermore, it is especially easy to integrate smart contracts and to automatically initiate payments. We used the ETH virtual currency for this. ETH is the second largest virtual currency after Bitcoin and works optimally with Ethereum.
We chose the public blockchain as the model. It is open, secure, globally available, flexible and can be used by everyone, which facilitates a network effect.
Practical example: Extending the Contacts demo app
We first developed a new BSI CRM Google plug-in which contains the logic for synchronization of calendar elements and all necessary libraries. Our framework enabled us to integrate the plug-in into the existing application with little effort.
In the demo we scanned the QR code with the smart phone as a small bonus, then transferred money from the smart phone and updated the amount in the contacts app.
Besides that, there is also the option of making credit transfers directly from the Scout app. After selecting a person, the precise account number is displayed for the purpose of traceability. The desired amount can be entered and the transaction started. The value is credited to the other account in just a few minutes.
At this point, we must again make it clear that we do not call up just a single Web service that updates a database field somewhere, but through use of blockchain technology which can transfer a value using a cryptographic process without a middleman. In this way, any amount can be transferred worldwide in minutes at negligible costs.
The third point is the deployment of a smart contract. Such contracts are defined in a script language (Solidity) and then transferred to the Ethereum node. A bit of fine-tuning is needed here, but this case can also be implemented as well.
How does the interaction with the Ethereum network work?
Ethereum is a peer-to-peer network. We installed an Ethereum node locally on our notebook. Each node contains a JSON-RPC interface that can be addressed in various ways once it is activated. It initially did not look good for Java, but then we came across the Web3J library. It enables a more type-safe interaction and encapsulates the queries and results in beautiful Java objects.
The principle architecture is visualized in the following diagram:
The library is Java based on the essentially widespread Web3.js library and is largely being promoted by a developer (Conor Svensson), who also maintains quite good documentation.
The PoC (particularly the adaptation to the GUI) is kept quite simple, but also fulfills its purpose very well. We were able to show that using Web3J an interaction with the Ethereum blockchain from Eclipse Scout is relatively easy and also convenient. The topic of blockchain was very well received at the Demo Camp and the feedback about the presentation was consistently positive. There were also stimulating discussions afterwards and interesting new contacts were made.
Why blockchain? 6 reasons
- Automatic notarization: conduct transactions and business without having to know or trust one another
- Lower costs: value transfers through peer-to-peer network and elimination of 20 billion US dollars in backoffice expenditures
- Fast: the SWIFT network processes 15 million payment instructions daily, but requires days to settle and account for them
- Risk management: reduction of financial risks (e.g. settlement risk, counterparty risk in the system)
- Value innovation: open source and leaves the door open for experimentation
- Source openness: changes in the old system are difficult (e.g. due to backward compatibility)
Why blockchain with Eclipse Scout?
- Boosts productivity & sustainable investments: covers many requirements, reduces the development of business applications, continuous further development
- Cost-efficient: open source, usage free of charge, profits from the world-class IP management provided by the Eclipse Foundation
- Independent & easy to integrate: flexible usage possibilities, such as CRM, offer systems, ERP, medical warehouse systems, portals and coupling of blockchains with existing, even complex IT landscapes
- Multi-device-compatible and rapid time-to-market: applications run in the desktop browser, on tablets or mobile devices at the same time. They are easy to learn, provided with standards (Java/HTML5) and are suited for commercial use.