A decentralized cross-chain exchange built using .NET Core that allows users to trade cryptocurrencies across different blockchains without relying on a centralized authority. The exchange operates peer-to-peer, ensuring security and privacy for users while maintaining full control over their funds.
- Cross-Chain Trading: Trade assets across different blockchains.
- Decentralized: No central authority or third party needed for trades.
- Secure: All transactions are cryptographically signed and validated.
- P2P Network: Built using a peer-to-peer architecture to ensure privacy and censorship resistance.
- Open-Source: Fully transparent and verifiable by the community.
- .NET Core: Backend logic and API services.
- Stacks.js: Blockchain interactions and smart contract management.
- Docker: Containerization for easy deployment.
Before running the project, ensure you have the following installed:
-
Create Docker Network
docker network create docker-network
-
Install Postgres Database
docker pull postgres docker run --name postgres1 -e POSTGRES_PASSWORD=mysecretpassword --network docker-network -d postgres
-
Install .NET Core Restful API
docker build -t nochainswap-api -f NoChainSwap.API/Dockerfile . docker run --name nochainswap-api1 -p 8080:443 -e ASPNETCORE_URLS="https://+" -e ASPNETCORE_HTTPS_PORTS=8080 --network docker-network nochainswap-api &
-
Install STX Wallet microservice:
docker build -t stacks-wallet . docker run --name wallet-stx -p 3000:3000 --network docker-network stacks-wallet
-
Install React Frontend:
docker build -t nochainswap-app . docker run --name nochainswap-app1 -p 443:443 nochainswap-app
-
Once the application is up and running, you can access it in your browser at
http://localhost:5000
.
By default, the application uses a test environment for the supported blockchains. To configure the exchange for production or add more chains, modify the environment variables in the docker-compose.yml
file.
For example:
environment:
- NETWORK=mainnet
- SUPPORTED_CHAINS=bitcoin,ethereum,stacks
- API_KEY=your-api-key