In today's peer programming call, we went through Robin Klemens's docker-compose-setup and the REST API for accessing the chain code. You can see a demo of this in the beginning of the attached video.
The big question today was how to extend this to a UI. We looked at a UI example with opentaps SEAS, which is an application developed for managing building energy data. This application supports multiple users who could set up multiple sites (think buildings) each of which could have utility meters that have billing data associated with them.
The UI could be an Application which is run by many different auditors connecting to different peer nodes through REST API's. The peer nodes then connect to the ledger. We could support many different applications which use REST to connect to the ledger, many different instances of each application, and many different peer nodes on the ledger through this architecture. It would not be routed through one application or one REST server accessing the ledger.
We can think of an Application as being run by an Auditor organization, which could then support many Users. Each User could be a customer or employee of the Auditor and work with multiple Sites, and each Site would have multiple Utilities from which the Auditor gets billing and energy use data.
The Application would need to create credentials for each User, then the User would access the ledger to record and get emissions data with its credentials. It would be up to the User to hold its credentials however they would like – in hardware, local, or cloud-based wallets.
To do this, we would need to expand the current REST api to:
- allow Admin user to issue credentials for Users through the Certificate Authority on the ledger
- allow User to use credentials for accessing ledger requests
The scope of our current work is to get this working on local development environment, and later work on TLS security and cloud deployment.
We also decided to continue development using docker-compo-setup and Go and to finish the Go chain code instead of the Node.js version.
The Go chain code will be converted to use contract API from shim.
Finally we decided to get some help with UI design, so if anybody reading this would like to help on the front end design, please let me know.
We will have our next call in 2 weeks time.
Recordings of Today's Call