Skip to content

Commit 8888b41

Browse files
Update README.md
1 parent a8f75b7 commit 8888b41

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

README.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
# Blockchain Access Layer
1+
# Blockchain Access Layer (BAL)
2+
23
The project is a Java 8 web application that uses Jersey to expose a RESTful API.
34

45
## Configuration
6+
57
The blockchain access layer needs to be able to communicate with a [geth node](https://github.com/ethereum/go-ethereum)
68
which has RPC connections enabled.
79
Furthermore, the layer directly accesses the keystore file holding the private key of an Ethereum account used for sending
@@ -14,6 +16,7 @@ The configuration file that can be used to configure these aspects (communicatio
1416

1517

1618
## Building and Deployment
19+
1720
After cloning, you can build the project and package it into a WAR
1821
file using the following command:
1922
```
@@ -28,6 +31,7 @@ of the Bitcoin Core node. However, the used library is not available in a public
2831
a local Maven repository which includes the required binaries. This repository is found [here](local-maven-repo).
2932

3033
## Accessing the API
34+
3135
The application exposes an asynchronous RESTful API to subscribe and unsubscribe from the provided operations.
3236

3337
**To summarize:**
@@ -59,6 +63,7 @@ paths to manually delete the corresponding subscription:
5963
```
6064

6165
## Running a Local geth Node
66+
6267
A geth node is used to access the Ethereum network. For development purposes, it is advised
6368
not to connect to the main Ethereum network, but rather to one of the testnets.
6469
(another, more difficult option would be to run a local private Ethereum network).
@@ -84,6 +89,7 @@ To start a geth node in the fast-sync mode, execute the following command:
8489
please replace _localhost_ with the ip address of the computer running the node.
8590

8691
## Running a Local Bitcoin Core Node
92+
8793
A Bitcoin Core node (or _bitcoind_ node) is used to access the Bitcoin network. For development purposes, it is advised
8894
not to connect to the main Bitcoin network, but rather to one of the testnets.
8995
(another, more difficult option would be to run a local private Bitcoin network).
@@ -103,10 +109,13 @@ connection, and the availability of peers).
103109
```
104110
bitcoin-cli -getinfo -rpcconnect=<ip address of the node> -rpcport=<port of the node> -rpcuser=<rpc username> -rpcpassword=<rpc password>
105111
```
112+
106113
## Setting-up a Hyperledger Fabric Network
114+
107115
Please follow these steps [Fabric Setup](https://hyperledger-fabric.readthedocs.io/en/latest/getting_started.html)
108116

109117
### Note
118+
110119
The included Fabric unit test depends on the [FabCar official example](https://hyperledger-fabric.readthedocs.io/en/release-1.4/write_first_app.html), so in order to run it
111120
ensure the following:
112121

@@ -122,6 +131,7 @@ ensure the following:
122131
This ensures that the SDK is able to find the orderer and network peers.
123132

124133
## Case Study (For BlockME)
134+
125135
The case study invloves a cryptocurrency exchange service utilitzing the blockchain access layer.
126136
The exchange uses the following simplified BlockME-model:
127137

@@ -166,7 +176,12 @@ You can find the details about the resulting testnet3 Bitcoin transaction [here]
166176
* a _geth_ node is running on a virtual machine in a VSphere accessible from the local network.
167177
* a _bitcoind_ (Bitcoin Core) node is running on a virtual machine in a VSphere accessible from the local network.
168178
* The blockchain access layer is running in a local Tomcat server listening to port 8081
169-
* The camunda engine is running in a local Tomcat server litening to port 8080
179+
* The camunda engine is running in a local Tomcat server listening to port 8080
180+
181+
## BAL as a Smart Contract Invocation Protocol (SCIP) Gateway
182+
183+
The BAL provides a JSON-RPC API as a prototypical implementation of the [SCIP protocol](https://github.com/lampajr/scip) playing the role of a SCIP gateway.
184+
185+
### SCIP Case Study
170186

171-
## Case Study (For BlockME2)
172-
Detailed case study for BlockME2 coming soon!
187+
A case study that demonstrates the usage of the BAL as a SCIP gateway [can be found here](https://github.com/ghareeb-falazi/SCIP-CaseStudy).

0 commit comments

Comments
 (0)