27

Shard is a concept not so much related to the Proof-Of-Stake, but rather to the scalability improvement. The idea of 'sharding' is to split the space of possible accounts (contracts are accounts too) into subspaces, for example, based on first digits of their numerical addresses. Each shard gets its own set of validators (therefore PoS is a pre-requisite), ...


13

You don't need to have lots of full client nodes. Nowadays you can download the light-client version, which implementing Merkle Tree structures, lets nodes to don't be obligated to store ALL of the data on it's hard drive. Some use cases for a fully light client, and how the light client meets those use cases, include: A light client wants to know the ...


8

Its kind of what Casper is trying to do with its sharding scheme. The high level idea is to split the network into several groups, and a group of nodes will be responsible for verifying some set of transactions (or a shard). It is entirely possible to do in a private network, where all the nodes are known and have fixed identities. However, in an open ...


7

In Ethereum, all miners are working on the same problem at the same time. (This is why people usually say: "Equate the Ethereum computer to a Commodore 64". It takes a lot to keep everything in sync.) My guess is that, with sharding, you could have different segments of miners working on different problems at the same time, and they would somehow check each ...


6

The first phase implementation of sharding and Plasma are both essentially sidechains that tie into the main chain via smart contracts. However, the responsibilities of these smart contracts and properties of the sidechains is different for each project. Plasma sidechains are somewhat similar to state channels (e.g. Lightening and Raiden) in that they use ...


5

Ethereum is not currently sharded. As we work towards a scalability solution, the state will be sharded and validators assigned to shards on a dynamic basis. Note it will be proof of stake, so no mining. The details are still very much being sorted out.


5

Someday the Ethereum blockchain will hit 1TB, but it won't be soon. I've been installing full mining and non-mining nodes with geth with "fast" disabled. A fresh install of the blockchain fits nicely in under 120GB today, and that is only up about 40GB from last December. That's around 40GB in nearly half a year. Even if the Ethereum blockchain triples it's ...


4

Could blockchain be distributed over torrent (DHT)? Possibly, but... ...so that every node would not need to store whole blockchain... ? What you're essentially describing is sharding, which is being touted as one of the answers to Ethereum's scalability challenges. It's described in detail on the wiki's Sharding FAQ. In short, sharding allows the ...


3

The above answer is outdated on sharding, notaries are used instead of validators. See https://github.com/ethereum/wiki/wiki/Sharding-FAQ#how-does-plasma-state-channels-and-other-layer-2-technologies-fit-into-the-trilemma. After editing the above post, it is outdated again with the latest spec ditching the contract on the PoW main chain, and instead using a ...


3

Because it's completely integrated into the protocol and all interoperable. Side chains imply that there isn't really a consensus underneath that binds the two, it's sort of hacked together. Shards all operate under the exact same consensus structure.


2

Hypercube is no longer planned to be implemented. But yes, each shard produces their own blocks, although the latest plans is to call them collations, which are planned to occur more frequently than blocks. For details see https://github.com/ethereum/wiki/wiki/Sharding-introduction-R&D-compendium and https://ethresear.ch/t/minimal-sharding-protocol-...


2

Sure, assuming total tx's stay the same, then it will be something like current gas price / shards. I would assume that total tx's will increase however, when sharding goes into effect. But yes, overall, as a scaling solution, sharding is meant to decrease load on each individual node, and decrease gas prices.


2

They solve different problems and can be both used together. Truebit is about outsourcing heavy computations. For example a simulation may require thousands of hours of computing. You only need in the blockchain the final result and a protocol to ensure the result matches the algorithm output. But the computations are done outside of the blockchain. ...


2

Additionally, for planned innovations on storage, see: I think we want to use sparse merkle trees https://ethresear.ch/t/data-availability-proof-friendly-state-tree-transitions/1453/6 https://github.com/ethereum/research/blob/master/trie_research/bintrie2/new_bintrie.py https://gitter.im/ethereum/sharding?at=5ad49182102fac7b7b19334c Also see ...


2

The mauve paper has been deprecated for about 2 years. Yes, refer to the FAQs that you mentioned, with https://notes.ethereum.org/SCIg8AH5SA-O4C1G1LYZHQ# being the latest WIP development for shasper (sharding + casper FFG), plus you can keep an eye on the sharding and casper categories on ethresear.ch or watch these categories to be notified of new posts if ...


2

ELI5: You have 2 numbers, X and Y, each in an envelope. In a 3rd envelope, you store X+Y. This 3rd envelope can be considered the erasure code. You will always be able to compute X and Y by only losing 1 envelope. The concept: to avoid losing data, you store additional data in a smart way. (In the example above, it would not help if the 3rd envelope ...


2

Phase 1 sharding won't have any execution or EVM, so it won't integrate with the main net. Phase 2 will have an EVM, and will introduce backwards incompatible changes at a smart contract level, like storage rent, however the intention is to try to make these changes as DX and UX friendly as possible. (See https://github.com/ethereum/wiki/wiki/Sharding-FAQ#...


2

A validator in ShardA cannot download and validate all of ShardB because the validator already has too many shards. The main scalability problem with blockchains is that all validators have to validate every single transaction. The idea behind sharding is that transactions will be split across shards, and each validator will validate a small number of ...


1

The tl;dr is that no, validators can't choose which shards they validate. Validators are shuffled around between shards every 10 minutes or so and are randomly assigned a few shards at a time. The worst they could do is not add transactions to the blocks they're assigned to, but they wouldn't do that if there were pending transactions with a high enough gas ...


1

Disclaimer: Not an expert here. I think we can assume you can collect more block producer and transaction fees on a chain no one else is o. Thus as long as there are transactions to validate and they are worth of something economically, somebody should be able to jump in. However if the number of block producers falls, the security of the chain will become ...


1

Since Ethereum has an account based architecture instead of UTXO based, it's actually not currently required to traverse the entire history to generate an up-to-date UTXO set like in Bitcoin. Each block in Ethereum has the root hash of the state trie, which includes account balances, so all you need to do in Etheruem to know any accounts balance is to ...


1

Just to quote this very good article about Ethereum scalability: At the moment we have in general two ways which might solve this problem: We build a blockchain where every node doesn’t have to process every operation. → called Layer 1 solutions (or On-Chain solutions) e.g. Sharding we squeeze more useful operations out of Ethereum’s ...


1

one generates the hash of all possible inputs Not quite (maybe you just didn't express yourself well). To create a SMT, one needs to generate all possible output of a hash function that will be used, and then each of the outputs becomes a leaf of the SMT. So if we use 256-bit hashing function (e.g. SHA-256), our SMT will contain 2^256 leafs. All of this ...


1

Yes, this is possible, but it would be more complicated to implement. See also https://github.com/ethereum/wiki/wiki/Sharding-FAQs#what-about-heterogeneous-sharding. What about heterogeneous sharding? Abstracting the execution engine or allowing multiple execution engines to exist results in being able to have a different execution engine for ...


1

At a very high level, chunking is at the file level, and sharding is at the database level. Let's say you have a large file that is 20KBs, then you need to chunk that into five pieces. Sharding is the concept that not everybody needs to know everything. For example, let's say you have a database that is the equivalent to a phonebook. This database is ...


1

I'm basing this answer on a particular implementation of PoS that is based on Vlad's Cbc-casper paper. The exact PoS implementation that Ethereum decides to implement may be different. Let "validators" be entities that are responsible for creating blocks that have bonded stakes in the proof of stake contract. Only validators can create new blocks and only ...


1

Yes, because a general proof of stake scheme with your only stated requirement being to collect signatures of at least 2/3 of validators, weighted by deposit (my edit, otherwise you could have 4,000 out of 6,000 validators with a minimum security deposit that is poorly designed to be too small, have more than 2/3 of the weighted deposit, and act faultily, ...


1

The parentheses are causing the error. Putting the statement on one line without the parentheses causes it to compile. To still comply with PEP008, since implicit line continuation is not an option with Vyper here (although it should be, and I will report this issue to the Vyper team), explicit line continuation will still work, in this case: @private def ...


1

You can create your own sharding structure using the DAG API. You can learn about it through this examples https://github.com/ipfs/js-ipfs/tree/master/examples/traverse-ipld-graphs


1

There is a shard ID for each shard that is a prefix to the address. For details, see https://ethresear.ch/t/minimal-sharding-protocol-extension/1823 and https://github.com/Drops-of-Diamond/diamond_drops/issues/13 for updates.


Only top voted, non community-wiki answers of a minimum length are eligible