Skip to content

Commit

Permalink
Merge pull request #1001 from dastansam/master
Browse files Browse the repository at this point in the history
ISO-8583 PoC Milestone 1
  • Loading branch information
nikw3f authored Sep 20, 2023
2 parents 6b26ab2 + 90d312b commit 078d0ee
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions deliveries/iso_8583_PoC_milestone_1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Milestone Delivery :mailbox:

**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and 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:** [Application](https://github.com/w3f/Grants-Program/blob/master/applications/ISO-8583-implementation.md)
* **Milestone Number:** 1

**Context** (optional)

This milestone is mainly about setting up the infrastructure for implementing ISO-8583 standard for Substrate.

**Deliverables**

| Number | Deliverable | Link | Notes |
| -----: | ----------- | ------------- | ----- |
| **0a.** | License | [License](https://github.com/subclone/payment-processor/blob/main/LICENSE) | MIT |
| **0b.** | Documentation | [Main README](https://github.com/subclone/payment-processor/tree/main) | Main README file contains links to all the crate-specific relevant documentation. Each crate is documented. |
| **0c.** | Testing and Testing Guide | [Unit/Integration tests](https://github.com/subclone/payment-processor/tree/main/pcidss/oracle/src/tests), [Unit tests](https://github.com/subclone/payment-processor/blob/main/pcidss/core/src/bank_account/models.rs#L149) | Integration tests and unit tests are provided. Integration tests are written to ensure ISO-8583 message is being processed correctly. Unit tests are written over primitive models and functions. |
| **0d.** | Docker | [Dockerfile](https://github.com/subclone/payment-processor/blob/main/pcidss/Dockerfile) | Dockerfile for Oracle |
| 1. | Merchant App | [Merchant App](https://github.com/subclone/payment-processor/tree/main/interface) | This is a demo interface that uses the PCIDSS Oracle Gateway and Payment Processor to simulate bank dashboard and demo checkout page. |
| 2. | Payment Processor | [Payment processor server](https://github.com/subclone/payment-processor/tree/main/payment-processor) | Simulates a traditional payment processor which is used to process ISO-8583 messages from clients (i.e PoS terminals, ATMs, web payment gateways, etc.) and send them to the appropriate destination. You could think of it as a naive simulation of Stripe or PayPal. |
| 3. | PCIDSS Compliant Gateway | [Oracle](https://github.com/subclone/payment-processor/tree/main/pcidss/oracle) | PCIDSS Compliant Oracle contains set of services to process ISO-8583 messages, sync with Substrate chain and maintain local ledger. In a nutshell, it mocks a traditional bank which has issued some cards and is currently used for implementing a PoC implementation of ISO-8583 on a Substrate based blockchain. Substrate chain connection is not implemented yet. |
| 4. | Makefile | [Makefile](https://github.com/subclone/payment-processor/blob/main/pcidss/Makefile) | Makefile consists of commands to ease the development and testing. |

**Additional Information**

This milestone was a lot more challenging than I expected. I had to learn a lot of new things about ISO-8583 standard and deal with unmaintained packages. Parties involved in ISO-8583 are also simulated in a naive way, i.e there is only one bank that is issuing cards, so all transactions are "on-us". However, the core functionality and infrastructure that enables ISO-8583 integration with Substrate is complete.

0 comments on commit 078d0ee

Please sign in to comment.