Sunday, September 10, 2017

Understand bitcoin and setup bitcoin node for mining

What is bitcoin?

Bitcoin is a cryptocurrency. It's not a real currency just like USD or other currencies. There is an authority for currencies like USD but Bitcoin cryptocurrency has no authority or single owner and it is an encoded text which represents some value. Bitcoin cryptocurrency is maintained by the nodes in the bitcoin cluster (AKA bitcoin network). Bitcoin cluster is a masterless cluster (decentralized network), i.e. every node is the owner/maintainer/authority of the bitcoin.

What are the advantages of bitcoin

  1. It has no authority
  2. The nodes in the bitcoin cluster is the maintainers of bitcoin, it gives the decentralized nature
  3. Less transaction charges
  4. Fast transaction compared to a normal bank
  5. It's designed in a way that all transaction details can be public and hacking is impossible 

Is there any disadvantage for bitcoin?

Yes. The bitcoin cluster (network) is a collection of nodes, their communication is in peer-to-peer fashion. Each node should contain the complete transactional data (ledger) from the beginning i.e. the same copy of the transactional data is maintained/updated in each node.
The current size of the bitcoin transactional data is around 300GB and is increasing rapidly because the transactions are done in the world wide. To setup a node in the bitcoin cluster is a time consuming task now because of the data size (as per the assumption it takes at least weeks to finish copying all data) and in the future we don't know how much time it will take.
So it makes less possibility for a new node to join in the bitcoin network in the future. Keeping a bitcoin node mines bitcoin in the account but it's very less practically possible that maintenance cost will be less than the gained bitcoins cost at least in the future.
Yes, it's true there are thousands of nodes in the bitcoin cluster but can we think that they all will be able to maintain it in the future because all of them are not like google (we have to think in the level of google as it's a world wide transaction). How many of them are strong enough to maintain it???

As per my conclusion bitcoin is not much trustable, at least in the future. So other cryptocurrencies will grab its place, the same scenario may happen to the upcoming cryptocurrencies and this process will go on...

Add your comments below to continue writing the remaining...

Indians can use this third party bitcoin service to buy and sell bitcoins.

Checkout my favourite java framework, if you are a Java EE engineer it will be useful to you.

Sunday, August 13, 2017

Architecture for realtime application projects

Do you have any of the following question in mind?

  • How to architecture a realtime-heavy websockets-based web application?
  • Architecture of real-time web applications?
  • What framework should I use for real time web app?



The architecture in simple few steps
  1. From server to client and vice versa communication use webfirmframework
  2. For a messaging system which collects messages from various sources and deliver to its consumers: go for Kafka
  3. For saving the messages in a db, use redis
Now, how are they connected each other
  1. webfirmframework is a java realtime web application framework which can send ui updates from server to client without any trigger from client. So the Kafka will be communicating with webfirmframework to push the messages to the ui.
  2. Kafka will receive messages from various sources including from the end users interacting with webfirmframework ui.
  3. redis may be used to save all of the messages for a backup.

Add your comments to explain more in detail...