6 Home
djmil edited this page 2024-05-27 15:52:51 +02:00

High Level Overview

This project is focused on exploring Corda Application that will be managing rules of the Checkers game.

It was decided to keep out of scope all Corda Cluster management tasks. As result, SpringBoot server (which acts as a intermediary gateway between the world and a CordApp) will be using solely default admin access rights.

flowchart TD
	ReactJS <--> SpringBoot 
    subgraph midleware
	    direction LR
	    SpringBoot -.users.-U[(Hardcoded DB)]
    end    
    SpringBoot -- admin ---> C[(Corda)]
    C --- c1([Alice])
    C --- c2([Bob])
    C --- c3{Notary}
    C --- c4([Kumar])
    C --- c5([Charlie])

Although it is possible to add MDM instance to the game, and enforce users, groups, roles and permissions. At the moment, the setup will be using set of default users, provided by CSDE.

On a front end side, before initiating any interactions, a login credentials has to be provided. The name and a password of a user has to match SpringBoot hardcoded users, which on itself is a representation of set of predefined Corda users, aka VirtualNode names from Corda Cluster. Such a scheme, ensures that SpringBoot server will always know on behalf of which identity a given operation shall be performed (despite the fact that in reality it will be executed under admin role).

Major development milestones

Entities

Messaging

  • Secure REST Client Communication channel between SpringBoot server and CordApp.

  • Holding Identity short Hash A CordaCheckers end user shall be able to perform actions (to play the game) on behalf of his representation in Corda Cluster. This means, that SpringBoot middleware shall be able to authenticate REST requests from React app and translate them onto request aimed to concrete virtual node: Alice, Bob, Kumar, Charlie, etc. One way of doing this, is to have hardcoded set of users. But this is boring. Instead, SpringBoot middleware is going to dynamically obtain information about available virtual nodes (their names and short hashes) and dynamically register set of relevant front end users.

  • Sequence diagrams A high level overview of an execution pass for major actions.

TODOs

  • Use jsonschema2pojo to generate POJO objects for SpringBoot server from REST API schemas provided by CSDE