1

I have set up the private ethereum block by doing the following steps.

1- Initialised same genesis.json on 2 systems.

2- Started geth console by using same network id.

3- Added these two systems (node) by adding them as peer using admin.addPeer command.

Now I am able to do all the transactions.

Questions :

1- Now this private blockchain is ready and if I have to add any new user does that mean I have to start a new server and on that server, I have to follow the above steps?

2- How do these wallets (ETH wallets) are setting up their infra? Do they have one server which is connected to public ethereum blockchain? and any new user who is joining/buying-ether from these wallets is basically getting added in these wallets as an account, not as a new peer?

3- From above two questions I have figured out that basically there are so many exchanges or wallets who are connected as peers to public blockchain and individual who is buying or selling using these wallets are basically accounts of these wallets. (added a new account eg: personal.newAccount("xux"))

I am new to blockchain and trying to understand the infra how it is being set up so that I can replicate same for my private blockchain. Please correct me if I am wrong and please clear my doubts.

Thanks In advance.

  • In question #1. What do you mean by a new user? A new server? #2: the wallets works the same as it does in ETH's public chain. They are valid wallets and keys. Generate a wallet as you would normally. #3: Wallets are not connected as peers at all. Wallets are balances on the public/private ledger. A user uses their private key to access they wallets and transfer ether elsewhere or to execute smart contracts. – MSwezey Dec 12 '17 at 16:26
1

Sadly Ethereum is not very scalable. If you want to change anything in Genesis file. you will have to reconfigure all the nodes. At least for now it does not allow you to scale dynamically.

  1. If it is just a new user, you need a new account which can be on any of the two nodes. Adding another node will not be a problem, just that genesis file can't change or you reconfigure all. Plus to be on the same private blockchain, your genesis files should be the same and the network id should be the same.

  2. Understand the difference between an account, a node and a server. A server can host several nodes, your nodes are what you use to connect to the network and an account can be on any of your nodes, you can move it around the network. (Take your keystore with you). So when you say buy, you do transactions, you can only send. Something like a DApp and a smart contract would allow logic to be executed that you request and someone sends ether to you from their "account" to your "account". Your balances and transactions history stay in the blockchain.

  3. Peers are basically nodes, when you do an admin.addPeer, you are acknowledging their existence on the network. Quorum, which is a fork of Ethereum allows a very dynamic way to add peers. And also provides a high TPS.

1

1- Now this private blockchain is ready and if I have to add any new user does that mean I have to start a new server and on that server, I have to follow the above steps?

No. You are confusing platform concerns with application concerns.

Ethereum is designed so that all properly functioning nodes eventually reach consensus on the correct interpretation of transactions, and by extension, the system state.

The word "user" is overloaded. It could be an individual or an organization, a committee, a device. Ultimately, the meaning of it is an application concern that deals with matters such as authority and access control. This is expressed in contract design.

In practice, private networks often serve multiple organizations and those organizations may have an interest in ensuring others, e.g. competitors, don't have an unfair advantage. A topological solution is for each organization to operate a node.

Contracts are indifferent to which nodes users use to send transactions.

The resilience of the network, not speed, scales with the number of nodes. As more nodes are added, transactions/second does not increase, but the threshold number of complicit nodes required to revise historical facts does.

2- How do these wallets (ETH wallets) are setting up their infra? Do they have one server which is connected to public ethereum blockchain? and any new user who is joining/buying-ether from these wallets is basically getting added in these wallets as an account, not as a new peer?

Wallets and contracts do not have an infrastructure. The Ethereum network provides connectivity, processing, state, and resilience. When a contract is deployed on Ethereum, the code of the contract becomes an observable fact on the blockchain. Contracts must execute their instructions as coded. The public blockchain provides this platform with replication over many thousands of nodes. Published contracts require no further infrastructure support from their creators.

A private blockchain (usually) uses the same node software. The creator designs a topology that meets the requirements for replicas, secure access (each "user" needs to connect to at least one node), node-to-node connectivity, possibly behind a VPN, usually with at least one node in each participating organization so they can independently interpret the blockchain without reliance on competitors where incentives may not perfectly align.

3- From above two questions I have figured out that basically there are so many exchanges or wallets who are connected as peers to public blockchain and individual who is buying or selling using these wallets are basically accounts of these wallets. (added a new account eg: personal.newAccount("xux"))

Blockchain inverts the usual relationship of centralized data and dispersed nodes that request information. There is a shared set of facts and a protocol. That is all.

On a public chain, no further infrastructure is required. Private chain solutions reject public chains and use the (mostly) same software to create similar networks. It's analogous to the public internet, and internal intranets using the same software stack and protocols.

If you think of "coins" as objects or files that get passed around, it will never make sense. It's more like a spreadsheet in the sky that is apparent to everyone who can see it. There are strict rules about updates and an immutable history of all changes.

When a new node joins a network, the first thing it does is download the blocks, which contain a well-ordered transaction history and it runs the transactions itself, like a replay log. When fully caught up, the node will be in consensus with the rest of the network.

(Full) Nodes are similar to database replicas in that they contain the entire state history of all users and all contracts. The nodes agree on everything. It may help to think of contracts as similar to stored procedures. No arbitrary update is permissible. For example, a sysadmin is not allowed to INSERT INTO TABLE .... Everyone is restricted to send(data, {to: contract}) and the contract will decide if the update is permissible.

A rogue node would simply fall out of consensus with the rest of the network. The network would simply disregard the rogue node because the other nodes, having evaluated the transaction history for themselves would conclude that they disagree with the rogue and so should ignore it.

Consensus in a private chain has different constraints than consensus in a public chain. Consequently, variations of Ethereum such as Quorom exist. Design patterns for distributed are quite different from server-centric systems in either case, but transaction throughput and privacy matters can be treated differently than is the case on the public mainnet.

Hope it helps.

0

I don't think so you need to add server for each user rather identify your requirements clearly.

Would you wanna have Consortium blockchain which has some pre-defined permissioned nodes?

In general, You don't need server for each user instead if number of users increases and they wanna do some ether transactions then each user must be linked to an account and has some balance in it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.