xmr-btc-swap/CHANGELOG.md
Daniel Karzel c976358c37
Multiple swaps with the same peer
- Swap-id is exchanged during execution setup. CLI (Bob) sends the swap-id to be used in his first message.
- Transfer poof and encryption signature messages include the swap-id so it can be properly associated with the correct swap.
- ASB: Encryption signatures are associated with swaps by swap-id, not peer-id.
- ASB: Transfer proofs are still associated to peer-ids (because they have to be sent to the respective peer), but the ASB can buffer multiple
- CLI: Incoming transfer proofs are checked for matching swap-id. If a transfer proof with a different swap-id than the current executing swap is received it will be ignored. We can change this to saving into the database.

Includes concurrent swap tests with the same Bob.

- One test that pauses and starts an additional swap after the transfer proof was received. Results in both swaps being redeemed after resuming the first swap.
- One test that pauses and starts an additional swap before the transfer proof is sent (just after BTC locked). Results in the second swap redeeming and the first swap being refunded (because the transfer proof on Bob's side is lost). Once we store transfer proofs that we receive during executing a different swap into the database both swaps should redeem.

Note that the monero harness was adapted to allow creating wallets with multiple outputs, which is needed for Alice.
2021-04-13 18:16:19 +10:00

2.4 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Changed

  • Allow multiple concurrent swaps with the same peer on the ASB. This is a breaking change because the swap ID is now agreed upon between CLI and ASB during swap setup. Resuming swaps started prior to this change can result in unexpected behaviour.

0.4.0 - 2021-04-06

Changed

  • The resume command of the swap CLI no longer require the --seller-peer-id parameter. This information is now saved in the database.

Added

  • A changelog file.
  • Automatic resume of unfinished swaps for the asb upon startup. Unfinished swaps from earlier versions will be skipped.
  • A configurable spread for the ASB that is applied to the asking price received from the Kraken price ticker. The default value is 2% and can be configured using the --ask-spread parameter. See ./asb --help for details.

Changed

  • Require the buyer to specify the connection details of the peer they wish to swap with. Throughout the public demo phase of this project, the CLI traded with us by default if the peer id and multiaddress of the seller were not specified. Having the defaults made it easy for us to give something to the community that can easily be tested, however it is not aligned with our long-term vision of a decentralised network of sellers. We have removed these defaults forcing the user to specify the seller they wish to trade with.

Fixed

  • An issue where the swap CLI would fail on systems that were set to a locale different than English. A bad readiness check when waiting for monero-wallet-rpc to be ready caused the CLI to hang forever, preventing users from perform a swap.

Security

  • Fixed an issue where Alice would not verify if Bob's Bitcoin lock transaction is semantically correct, i.e. pays the agreed upon amount to an output owned by both of them. Fixing this required a breaking change on the network layer and hence old versions are not compatible with this version.