Basic Atomic Swap Proof of Concept
Find a file
tecnovert 818b5f1ab2
Added notes to run the docker example on windows.
Set the log file to append.
Set docker example config to listen on all interfaces.
docker-compose is setup to bind the port only to localhost, on windows
docker runs in a virtualbox instance and the swap client must listen on
all interfaces to pass through the connection: host -> vbox -> docker -> swapserver
2019-07-18 22:06:36 +02:00
basicswap Remove plyvel dependency. 2019-07-18 19:53:23 +02:00
bin Added notes to run the docker example on windows. 2019-07-18 22:06:36 +02:00
doc Added notes to run the docker example on windows. 2019-07-18 22:06:36 +02:00
docker Added notes to run the docker example on windows. 2019-07-18 22:06:36 +02:00
tests test: Wait for rpc. 2019-07-17 18:50:07 +02:00
.gitignore Add to Github 2019-07-17 18:07:37 +02:00
.travis.yml Remove plyvel dependency. 2019-07-18 19:53:23 +02:00
Dockerfile Add example config files for docker. 2019-07-18 20:41:17 +02:00
LICENSE.txt Add to Github 2019-07-17 18:07:37 +02:00
MANIFEST.in Add to Github 2019-07-17 18:07:37 +02:00
README.md Add to Github 2019-07-17 18:07:37 +02:00
setup.py Remove plyvel dependency. 2019-07-18 19:53:23 +02:00

Particl Atomic Swap - Proof of concept

Overview

Simple atomic swap experiment, doesn't have many interesting features yet. Not ready for real world use.

Uses Particl secure messaging and Decred style atomic swaps.

The Particl node is used to hold the keys and sign for the swap transactions. Other nodes can be run in pruned mode. A node must be run for each coin type traded. In the future it should be possible to use data from explorers instead of running a node.

Currently a work in progress

Not ready for real-world use.

Features still required (of many):

  • Cached addresses must be regenerated after use.
  • Option to lookup data from public explorers / nodes.
  • Load active bids from db at startup
  • Ability to swap coin-types without running nodes for all coin-types
  • More swap protocols
  • Method to load mnemonic into Particl.

Seller first protocol:

Seller sends the 1st transaction.

  1. Seller posts offer.

    • smsg from seller to network coin-from coin-to amount-from rate min-amount time-valid
  2. Buyer posts bid:

    • smsg from buyer to seller offerid amount proof-of-funds address_to_buyer time-valid
  3. Seller accepts bid:

    • verifies proof-of-funds
    • generates secret
    • submits initiate tx to coin-from network
    • smsg from seller to buyer txid initiatescript (includes pkhash_to_seller as the pkhash_refund)
  4. Buyer participates:

    • inspects initiate tx in coin-from network
    • submits participate tx in coin-to network
  5. Seller redeems:

    • constructs participatescript
    • inspects participate tx in coin-to network
    • redeems from participate tx revealing secret
  6. Buyer redeems:

    • scans coin-to network for seller-redeem tx
    • redeems from initiate tx with revealed secret