Skip to content

Commit

Permalink
Hyperfridge Milestone 2 (#1169)
Browse files Browse the repository at this point in the history
* Create hyperfridge_milestone_2.md

* Update hyperfridge_milestone_2.md

* Update hyperfridge_milestone_2.md

* Update hyperfridge_milestone_2.md

fix broken links

* Update hyperfridge_milestone_2.md

Fix licence link - points to correct repo now.

---------

Co-authored-by: dev <[email protected]>
  • Loading branch information
wasabrot and wstrametz authored May 7, 2024
1 parent 239ab9d commit da48789
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions deliveries/hyperfridge_milestone_2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Hyperfridge Milestone 2 - Banking API Integration :mailbox:

Project Hyperfridge: [PR 2096](https://github.com/w3f/Grants-Program/pull/2096).
The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).
* **Application Document:** [Hyperfridge](https://github.com/w3f/Grants-Program/blob/master/applications/hyperfridge.md)

* **Milestone Number:** 2

# Context

Hyperfridge allows to create
and consume TradFi-Events (e.g. a payment) based on cryptographical primitives, not on trusted oracles.
Milestone 1 was about generating the STARKs proof in an MPC (Multi-Party-Computing) Setup.
This milestone (nr 2) is about "intercepting" the communication with banking backends, in order
to create and provide the proof via an API. The proof will be processed by Off-Chain-Worker in Milestone 3.

IMPORTANT NOTE: We would like to change the content of Milestone 4 and 5. Instead of minting and burning
our own tokens, we would like to integrate with [Polkadot asset hub](https://wiki.polkadot.network/docs/learn-assets).
How shall we prepare that? Time and efforts would be the same, but the use-cases are more compelling if we are able to
provide trustless fiat rails to Polkadot asset hub.

# Overview of Milestone deliveries

## Milestone 2 - Banking API Integration

- **Estimated duration:** 1 month
- **FTE:** 1.2
- **Costs:** 5,000 USD

| Number | Deliverable | Specification | Assets |
| ----- | ----------- | ------------- | ------ |
| 0a. | License | Apache 2.0 | [Link to Licence](https://github.com/element36-io/ebics-java-service?tab=Apache-2.0-1-ov-file) |
| 0b. | Documentation | We will provide both inline documentation of the code and a basic tutorial that explains how a user can start the backend and send test transactions, which will show how the new functionality works.| [Link to Documentation Root](https://github.com/element36-io/ebics-java-service?tab=readme-ov-file) |
| 0c. | Testing Guide | Adapt unit tests of core functions and test data to ensure functionality and robustness of the overall system (bridge and proofs). In the guide, we will describe how to run these tests. | See [Testing Guide](https://github.com/element36-io/ebics-java-service/blob/hyperfridge/docs/TEST.md#clone-repo-and-run-unit-tests).|
| 0d. | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. |[Testing Guide: "Run with Docker"](https://github.com/element36-io/ebics-java-service/blob/hyperfridge/docs/TEST.md#run-and-test-with-docker), got to "Run and test with Docker". |
| 1. | Generate Receipt | Retrieve data form backend and generate receipt (proof) using the proving system. | [Testing Guide](https://github.com/element36-io/ebics-java-service/blob/hyperfridge/docs/TEST.md#test-api-and-download-zk-proof), go to "Test API and download ZK Proof".|
| 2. | Provide API | We will provide an application based on Spring-Boot that will contain `getBankstatements():Statement[]` (which includes account balance), `createOrder (OutgoingPayment)` and `simulatePayment(Payment)` as a REST interface. The recipe data is added in the backend API `/ebics/api-v1/bankstatements` with one new field in the top level of the JSON-response: `receiptUrl` so that clients can use a public verifier to check the proof. | [Testing Guide](https://github.com/element36-io/ebics-java-service/blob/hyperfridge/docs/TEST.md#test-api-manually-with-swagger), go to "Test API manually with Swagger" and follow instructions of screenshots. |
| 3. | Provide Banking-UI | Show a UI to see the status of banking backend (show accounts, transactions etc). We will use [LibEuFin](https://github.com/element36-io/ebics-java-service/blob/main/docs/SANDBOX.md) - same as in our first grant. | [Testing Guide](https://github.com/element36-io/ebics-java-service/blob/hyperfridge/docs/TEST.md#login-to-simulated-banking-backend-ui), go to "Login to simulated banking backend UI" on [localhost:3000](localhost:3000), foo/superpassword |
| 4. | Unit Tests | We will adapt unit tests and test data to cover creating and validating proofs. | [Testing Guide](https://github.com/element36-io/ebics-java-service/blob/hyperfridge/docs/TEST.md), go to "Clone repo and run unit tests" on top of the document.|
| 5. | Repository | Repository will be the existing repo [ebics-java-service](https://github.com/element36-io/ebics-java-service) | [ebics-java-service](https://github.com/element36-io/ebics-java-service) |
| 6. | Backend-Docker | Provide docker-compose images for setting up banking API wrapper, LibEuFin proxy for banking-API. Set up test data in the backend via script and run tests which include the proving system. | [Testing Guide](https://github.com/element36-io/ebics-java-service/blob/hyperfridge/docs/TEST.md) - when starting services with docker compose. For data and scripts see [here](https://github.com/element36-io/ebics-java-service/tree/hyperfridge/scripts), especially init_libeufin_sandbox.sh |
| 7. | Swagger | Provide Swagger docu for the backend. | With backend started, use [localhost:8093](http://localhost:8093/ebics/swagger-ui/?url=/ebics/v2/api-docs/#/) |

0 comments on commit da48789

Please sign in to comment.