Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Software Project 2019/2020] Extending the support for cryptocurrencies in our blockchain-based decentralized exchange #5293

Closed
devos50 opened this issue Apr 16, 2020 · 3 comments
Assignees

Comments

@devos50
Copy link
Contributor

devos50 commented Apr 16, 2020

This issue hosts references and discussion related to the software project we added to ProjectForum, starting April 20.

Description in ProjectForum

The Delft Blockchain Lab (DBL) is TU Delft’s initiative for research, education, and training in blockchain technology and trust in the internet. Our research heavily focusses on improving the efficiency of blockchains, self-sovereign identities and blockchain-powered marketplaces.

Online marketplaces are an essential part of of daily lives and are used by billions of people to trade services, resources or assets. Oftentimes, these marketplaces are controllected by a single operator. A recent development is blockchain-based marketplaces, where all trading activity is conducted on a blockchain. Such marketplaces, also called Decentralized Exchanges (DEXes), do not require a single operator in stark contrast to most existing online marketplaces. Instead, a DEX is secured by the collective effort of participating traders. Notable examples of DEXes are Waves, BitShares and EtherDelta.

The Delft Blockchain Lab has designed, engineered and evaluated its own decentralized exchange, called AnyDex. AnyDex enables secure trade of any digital asset, service or resource, and is open source. It uses a lightweight blockchain to record all trading activity. Since all trade is recorded, fraud can easily be detected and punished. More technical information can be found in our paper, which is currently under review (shared upon request).

Problem description

AnyDex currently supports trading Bitcoin with bandwidth tokens, a digital currency used by our file sharing platform Tribler. For our Bitcoin wallet, we use bitcoinlib, an open-source Python library to manage wallets and interact with nodes to in the Bitcoin network to transfer funds to others. Recently, the author of bitcoinlib made changes that broke compatibility with AnyDex. For our upcoming large-scale deployment of AnyDex, it is critical that this incompatibility is fixed. Fixing this incompatibility would be the first major goal of the project.

Once compatibility with the bitcoinlib library is fixed, you should explore possibilities to add support for more cryptocurrencies in AnyDex, e.g., Ethereum or BitShares assets. We recommend to stick to cryptocurrencies with relative larger support amongst the cryptocurrency communities, since they are more likely to provide actively maintained (Python) libraries.

Since AnyDex (and bitcoinlib) is written in Python, it is helpful if students have prior knowledge of the Python 3 programming language.

Related issue: Tribler/anydex-core#25

@devos50 devos50 self-assigned this Apr 16, 2020
@devos50
Copy link
Contributor Author

devos50 commented Apr 20, 2020

Kick-off meeting (April 20):

  • Get AnyDex up and running on your computers (note: it requires the IPv8 library).
  • Have a look at the AnyDex wallet code and the AnyDex core. Note that we are using patches to get bitcoinlib up and running.
  • bitcoinlib source code
  • How can we fix compatibility with bitcoinlib? Should we use a patch again or make PRs directly to bitcoinlib?

Next meeting: April 27, 10:00

@devos50
Copy link
Contributor Author

devos50 commented Apr 27, 2020

Meeting April 27:

  • Project plan due to next week
  • All members have AnyDex up and running
  • Looked at the bitcoinlib library, the library now has support for configuration files
  • Project should also include the integration of other cryptocurrencies
  • What are the design trade-offs when integrating other clients? Trust-less requires one to download the entire chain, which might not be feasible on devices with low storage requirements. Some "lite" clients only download parts of the chain. Other clients like Electrum/bitcoinlib use external servers to communicate with the blockchain network. This, however, adds another attack angle since these servers might be compromised

Next meeting: May 4, 13:30

@devos50
Copy link
Contributor Author

devos50 commented Jun 29, 2020

The project has finished: Tribler/anydex-core#44

@devos50 devos50 closed this as completed Jun 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant