View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0008082 | Taler | libeufin-nexus | public | 2024-01-12 17:31 | 2024-03-07 19:49 |
| Reporter | Antoine A | Assigned To | Antoine A | Resolution deadline | |
| Implementer | Reviewer | ||||
| Release signed by | Deployed by | ||||
| Verifier | Communicator | ||||
| Data protection authority notification required | No | ||||
| CSIRT notification required | No | ||||
| Estimated effort (hours) | Actual effort (hours) | 0 | |||
| Fast-track | No | ||||
| Work package | none | ||||
| Priority | immediate | Severity | block | Reproducibility | N/A |
| Status | closed | Resolution | fixed | ||
| Target Version | 0.9.4 | Fixed in Version | 0.9.4 | ||
| Summary | 0008082: Make payment bouncing deterministic | ||||
| Description | When libeufin-nexus bounces an incoming payment, it issues a message with an outgoing payment with a random bank ID and a subject mentioning the bounced payment. When rebuilding the database from scratch, there is no way of knowing whether a malformed incoming payment has already been bounced and we risk bouncing the same payment multiple times. In addition, it should be easy for auditors to establish a link between an outgoing payment and a bounced incoming payment. | ||||
| Additional Information | The solution is to generate a deterministic bank ID from the bank ID of the bounced payment. As libeufin-bank and libeufin-nexus are linked using SQL triggers to perform conversion logic, it must be possible to generate the ID entirely in postgres SQL. The bank ID can be a maximum of 35 characters long and we are not sure that this field is case sensitive as the standard does not clearly specify this. Our solution is to perform a SHA-256 hash of the bank ID, encode it using base64, then truncate it to 35 characters and finally capitalise the result. | ||||
| Tags | No tags attached. | ||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2024-01-12 17:31 | Antoine A | New Issue | |
| 2024-01-12 17:31 | Antoine A | Status | new => assigned |
| 2024-01-12 17:31 | Antoine A | Assigned To | => Antoine A |
| 2024-01-15 14:19 | Antoine A | Status | assigned => informing |
| 2024-01-15 14:19 | Antoine A | Resolution | open => fixed |
| 2024-02-10 22:31 | Christian Grothoff | Fixed in Version | => 0.9.4 |
| 2024-03-07 19:49 | Christian Grothoff | Status | informing => closed |