To provide a live, comprehensive view of the latencies between all possible (23) AWS EC2 instance locations and cryptocurrency exchanges. This provides traders with a clear view of what location(s) are best for trading cryptocurrencies with low latency depending on the exchange they are using.
- EC2 Instances at every possible location are constantly pinging multiple different cryptocurrency exchanges across the world. These latencies are then sent to our main server.
- Our main server listens to messages from all 23 instances. This server handles sending the data to the front end.
- Each instance is running Ubuntu release 22.04.
- Websockets are used to communicate between each component.
- Dynamic DNS is used to access our main server. It is currently using an old domain I had registered for another project, cuppong.hessdevelopments.com. Google DNS is used for this and CRON jobs on my router are being used to constantly update this domain so it can always be accessed.
- The front end was done using the framework Svelte.
- Languages include: Javascript, HTML, and CSS.
- Pancake library was used. This is a highly customizable and very barebones charting library.
- Using SVG lines, live data is easily mapped in and updated in real time on the screen.
- Using free websockets provided by Binance, the top of our page includes 4 graphs showing prices of popular cryptocurrencies at the granularity of each trade. This is not a common form of granularity accessible to the public.
For the time being, this is not a final product and not available to the public. Future plans include hosting this project for public use.
- install npm
- cd to FrontEnd folder
- run 'npm install'
- run 'npm run dev'
For each AWS Server:
- install python3.10
- pip install ccxt
- pip install websockets
- run 'python3 main.py' For the Main Server:
- install python 3.9
- pip install websockets
- run 'python3.9 MainServer.py'