FineCoin software specifications

FineCoin Software Specifications [everything you need to know]

In this post we will explain what set-up FineCoin is based on. We will explain how our servers are structured, answer questions about the software and scalability.

We want to make sure that our community and people who decide to invest their money in FineCoin have nothing to worry about. FineCoin is here to stay.

FineCoin Server Set-up

Our current platform is based on 11 servers and is scaled to handle up to 20,000 concurrent users (that may mean almost half a million active users), the application servers can handle up to 10,000 active sessions each and are built with the thought to be easily scaled horizontally if needed.

The 11 servers have the following configuration and role:

1x Load Balancer (Apache server) – its main roles is to act as load balancer for the application servers, it is also the reverse proxy for the blog

CPU: Intel(R) Xeon(R) CPU E3-1230 v5 @ 3.40GHz

RAM: 8 GB ; 1 x [Size: 8192 MB, Type: DDR4, Speed: 2400 MHz]

Disk Drive: 480 GB SSD, SAMSUNG MZ7LM480HMHQ-00005

1x VPS for the Blog (in another network) We consider WordPress as a potential security risk so we chose to host the blog elsewhere

2 GB RAM

2 CPU cores

40 GB SSD RAID 10

2x Application Servers (Tomcat 8.5) these are the backbone of our platform they hold the collection of APIs and also serve the static content

CPU: Intel(R) Xeon(R) CPU E3-1230 v5 @ 3.40GHz

RAM: 16 GB ; 2 x [Size: 8192 MB, Type: DDR4, Speed: 2400 MHz]

Disk Drive: 480 GB SSD, SAMSUNG MZ7LM480HMHQ-00005

2x Blockchain Integration Servers – These servers are used by our platform to connect to both bitcoin blockchain and ethereum

CPU: Intel(R) Xeon(R) CPU E3-1230 v5 @ 3.40GHz

RAM: 8 GB ; 1 x [Size: 8192 MB, Type: DDR4, Speed: 2400 MHz]

Disk Drive: 2 x 1 TB (Software Raid 1), Dell 400-AEFB

2x Finecoin Blockchain Servers – These nodes are used by our platform and are also our main miners. At the moment these servers are the finecoin blockchain backbone. Aside from these we have 4 other miners on private servers not hosted in the datacenter, I hope soon we will have a lot more

CPU: Intel(R) Xeon(R) CPU E3-1230 v5 @ 3.40GHz

RAM: 8 GB ; 1 x [Size: 8192 MB, Type: DDR4, Speed: 2400 MHz]

Disk Drive: 480 GB SSD, SAMSUNG MZ7LM480HMHQ-00005

2x Postgresql servers in HA configuration with 2 databases each (one for users, and another for the application)

CPU: Intel(R) Xeon(R) CPU E3-1230 v5 @ 3.40GHz

RAM: 16 GB ; 2 x [Size: 8192 MB, Type: DDR4, Speed: 2400 MHz]

Disk Drive: 2 x 480 GB SSD (Software Raid 1) SAMSUNG MZ7LM480HMHQ-00005

1x VPN Server – the only gateway to the other server (except the blog)

Pretty neat, huh?

FineCoin Software Specifications

The application is written in Java 1.8(Spring Boot) and Angular 5.1 we rely on some public libraries such as web3j, bitcoinj, bitcore and insight-api and many more.

For bitcoin and finecoin we used parts of bitcoinj and bitcore but we ended up building our own wallet. We kept bitcore’s implementation of Bitcoin Payment Protocol and we used the library bitcoinj to build our own distributed wallet, on a cluster of servers, that can handle a lot more addresses than both libraries (We tested for up to 144.000 addresses and the sync was done in less than 1 hour using just 2 nodes).

Scalability

If the platform grows above our current limits, our scaling plan will be different for each component.

  1. Load Balancer at the moment is our only single point of failure, however unlikely, our first action will be to have another failover node
  2. Application Server – The applications are built to be scaled horizontally so this would be the easiest thing to scale (in less then 8 hours we can add more application nodes if that is the bottleneck)
  3. Blockchain Integration Servers – at the moment they are built to match the application servers 1 to 1 (also to have a backup ), I doubt they will become a bottleneck any time soon, but if that happens we would import the chaindata in another node and can have it up and running in a few hours
  4. Finecoin blockchain nodes – The plan is to take them public and to share the workload with other miners when the transaction count high enough
  5. Database servers, this would be a the most tricky scaling, however our current setup can handle a lot more than the application servers, so it will be a long time until this becomes and issue. The first plan if we get to 5 or more application servers would be to add more RAM to our current server. If the disk is running low we will have 2 options, archive the old data on another server or add more storage. If the platform grows ever more, then the only solution would be to move to another server and scale the database vertically.

    The diagram of our current setupFineCoin server setup

Back to you

I hope this article answered all your questions about FineCoin’s scalability and software specifications.

Nevertheless, you are free to contact us and ask anything you want. We will be happy to answer all your questions.