This project aims to implement a simple distributed bank system that can either be fault tolerant or highly available. Written in fall 2016 for SOEN423 as a final project.
Refer to the design document for more details about the design and implementation of this project.
- Run 'mvn clean package'
- Open a console window
- Run the command
- Unix: orbd -ORBInitialPort 1050 -ORBInitialHost 127.0.0.1
- Windows: start orbd -ORBInitialPort 1050 -ORBInitialHost 127.0.0.1
- From server/
- Run 'java -jar target/frontend-1.0.jar
- From sequencer/
- Run 'java -jar target/sequencer-1.0.jar '
- branch: QC, MB, NB, BC
- From replicamanager/
- Run 'java -jar target/replicamanager-1.0.jar <implementation> <branch> <id>'
- implementation: RA (Radu), SY (Sylvain), MA (Mathieu)
- branch: QC, MB, NB, BC
- id: 1, 2, 3 (do not start duplicates)
- From customerclient/
- Run 'java -jar target/customerclient-1.0.jar'
- From managerclient/
- Run 'java -jar target/managerclient-1.0.jar'
A full start requires:
- 12 ReplicaManagers (3/branch, one each of SY, RA, MA)
- 4 Sequencers (1/branch)
- 1 FrontEnd
- n Clients (manager or customer)
To start all the required binaries at once on windows, run startall.bat
Deposit $423 into an account 3 times. Sylvain IMPL will byzantine.
Deposit $42 into an account. Sylvain IMPL will crash.