I want to use Ethereum as private chain in a network. But as it would inside a transactional system, performance required is good. Ethereum on the other hand is said to have 15 TPS
What does 15 TPS mean ? That is not a practical performance if I try to use it for payment settlement in a private network
There would be probably 5000 - 6000 transactions per second and later more
How can I then use Ethereum for such a situation ?
15TPS means that at any given second only 15 transaction can be processed by the network not more than that. These transaction can be simple value transfer or any smart contract transaction.
Yes I understand that 15TPS is very low, which makes Ethereum or any other major blockchain implementations to be not very scalable.
But please keep in mind that the Ethereum foundation is actively working to solve this problem this problem by sharded blockchain and other techniques.
So you can assume that in near future the TPS for Ethereum will be around 10000, which is good enough.
But if you want any immediate blockchain which provides such transaction capacities, than you have to look beyond Ethereum.
Related
I'm working on a Dapp for testing Ethereum smart contracts.
I have followed along with this tutorial: https://github.com/Quintor/angular-truffle-box and got the Truffle Dapp working with Ganache-CLI, making me able to do Crypto (I.e. Ethereum) transactions from one to another wallet on this blockchain.
*Note, this is a testing environment so no real Eth are transferred.
The problem I currently encounter is that transactions are direct, and not like the times that are displayed as an option. (Like here, https://ibb.co/ccR8k0J)
The idea is that the more Ethereum (Cryptocurrency) you pay as a fee, the faster the transaction will be done. I wonder if anyone knows how to simulate these times, but on a local blockchain instead of a deployed one.
"ganache doesn't have options to set the consensus mechanism. You could look at puppeth to quickly spin up a geth instance with whatever consensus you want."
By #Stephen S
I know that a peer in a cryptocurrency network can contribute deciding the next block that has to be added to the blockchain. To do that and gain some rewards, such peer has to be the first peer able to resolve some PoW algorithm.
From what I have understood, mining pools use computational power of client machines in order to resolve the PoW as fast as possible.
I guess so that the mining pool server is the only peer that directly participates to the network and it performs entirely the algorithm using the computational power of the clients which perform only some secondary tasks.
How can be splitted this computational task to many clients?
Pool server receives "task" from a current coin node, by request getblocktemplate. Thereafter server, based on received tasks, prepares subtasks for participant miners, and also provide them another getblocktemplate strucutres, with reduced difficulty parameter. When miner solves subtask (with reduced difficulty), he sends his solution to a pool, this partial solution named a share. Pool computes participants contribution by number of submitted shares and shares difficulty.
Difficulty of some shares can be enough to comply coin network difficulty. Such share named solving share, and this is block solution. As result, this solving share added to blockchain as a block, and pool receives block reward.
Technically, miner can directly work with a wallet, without pool. This mode named solo mining.
See spec for getblocktemplate: https://github.com/bitcoin/bips/blob/master/bip-0022.mediawiki
MPC involves running calculations on numbers, perhaps from different parties, and sharing the result without anyone seeing the underlying data. Even the person operating the computer cannot access the information
How is this possible on blockchains like ethereum/corda/hyperledger etc?
Corda is a permissioned blockchain platform, which focuses on Peer to Peer communication. It is direct, private, and secured.
If there is any multiparty computation happening with in a Corda network, it will be happened only among participating parties.
It will happen strictly according to the Corda contract code, which
is developed by the pre-agreed business rules.
Every transaction will collect digital signatures from the participating parties, and distributed the transaction to these participating parties when the transaction is done.
Please see more information at: https://docs.corda.net/docs/corda-os/4.4/key-concepts-ecosystem.html
I'm playing around with an application using Ropsten test network for Ethereum blockchain. I am wondering if there is a way to delete things from there so they do not pollute the blockchain. Or is Ropsten is also immutable as the main one?
No, you can't.
The whole point of a blockchain is its immutability. The Ropsten network primarily differs from the Ethereum mainnet in that Ropsten Ether is worthless (it's for testing only.) Rest is all same as any other Ethereum implementation. As a matter of fact, of all the testnets, the Ropsten network is the closest to the Ethereum mainnet.
EXTRA:
Interestingly, (or not so interestingly), even in your private ethereum chain, the best in terms of 'clearing up the mess' you can do is to remove last N blocks (which hold the transactions). As soon as you pick and remove things, you break the integrity and your chain will become corrupt and void.
I was recently reading about blockchains and am very intrigued by this technology. I had a few questions regarding blockchains:
Do Blockchains use web-sockets to transmit information between users? If yes then is the information(blocks) sent always a JSON object?
Do all users have the entire copy of the blockchain, do they each just see a partial copy of the blockchain? if yes then how big can the file get?
Also, what determines transactions/second? I read bitcoin does about 7transactions/seconds and what is needed to make them more scalable, is it coding factors such as writing a more efficient algorithm (big-O) or is it some kind of hardware limitation?
Sorry if these questions seem trivial but I am a newbie trying to learn the technology. Any help would be appreciated.
No, usually they use low-level protocol build on top of TCP.
Users should have an entire copy of blockchain in order to verify transactions. Database size of Bitcoin: 200 GB, Ethereum 660 GB. You can use lightweight clients, which don't have a full copy, but in this case, you are not part of the network.
In Bitcoin, there is a limit on block size, 1 MB. Average transaction size is about 400 bytes, so the average block contains 2000 transactions. There is no problem with increasing block size limit, this was done in Bitcoin Cash network (32 MB). But we cannot increase it to infinity since internet connection speed and transaction verification disk/CPU resources are not infinite.