News for hackers. Stuff that matters.
Re:Why I’m so “against” Ethereum by apo on Friday December 28, 2018 @09:09PM (#18781278)
By now the Ethereum bloat is so bad that cheaply running an individual node is practically impossible for a lay person.

This is an important yet under-appreciated point. It's now extremely difficult to sync an Ethereum node from scratch. If the processes ever completes on commodity hardware, it takes weeks. And that difficulty will only climb as more and more stuff gets dropped onto the Turing-Complete "world computer."

This situation drives users in ever greater numbers to services that tell them which transactions are valid or not. Verification with a full node, the bedrock of censorship resistance, dies a death of 1,000 cuts as a result.

Re:Why I’m so “against” Ethereum by snissn on Friday December 28, 2018 @09:18PM (#18781320)
It takes me about a day to sync parity on a consumer desktop with an ssd and a 7 year old i5 Intel cpu
Re:Why I’m so “against” Ethereum by erulabs on Friday December 28, 2018 @10:05PM (#18781517)
For me, just about 18 hours with parity on a fairly new i7 and fairly fast (200mbps) net and NVMe disks. Haven't repeated enough to be sure, but I can't figure out how to replicate the "weeks" argument I keep hearing. I suppose on average American broadband (~15mbps) and spinning HDDs the week-long numbers start to seem reasonable?
Re:Why I’m so “against” Ethereum by erulabs on Saturday December 29, 2018 @12:37AM (#18782085)
Edit: It seems (based on the conversations in this thread) the argument is versus "full", "fast" and "light" sync methods. Full implies personally reverifying the entire chain and every transaction, which takes a week or more. Fast pulls down the entire chain (and all of its data), and takes ~18 hours (what I mentioned above), but still results in a complete Ethereum node. It becomes a philosophical argument if the "fast" sync method implies "enough trust", or if everyone should be expected to reprocess every transaction ever. Personally (and i'm not a mathematician) from what I understand of merkle trees, as additional transactions are verified, the "trust in the past" grows, as it would be increasingly difficult to have lied about (or rather, to change) a previous transaction.

Philosophy aside, it's really painless and takes less than a day to get a Ethereum node up and running and chugging away, hard stop.

Re:Why I’m so “against” Ethereum by bouncycastle on Saturday December 29, 2018 @01:26AM (#18782261)
My understanding that a full sync in Bitcoin means something different than a full sync on Ethereum. Bitcoin's database is modeled on UTXO (https://en.m.wikipedia.org/wiki/Unspent_transaction_output) therefore all clients need to validate all transactions from genesis to calculate final balances. Meanwhile, Ethereum is account based and state is global, and to determine the balances you only need to check the merkle proof, no need to store or re-validate each and every transaction, just the final result. Source: https://github.com/ethereum/wiki/wiki/Design-Rationale#accou... quote "The benefits of accounts are:Large space savings"

In Ethereum, the closet to a Bitcoin full node would be an 'full archive' node, those are keeping all the transactions, down to the stack traces and events, without pruning. These are usually run by block explorers, but you certainly don't need to store that much detail if you just want to interact with a dapps.

Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @04:44AM (#18782867)
You say “check merkle proof”, how do you know what it’s supposed to be? Trust somebody gives you the right hash?

There is no difference between BTC’s UTXO model and Ethereum’s account model in this sense - both are aggregate structures and to have full certainty the aggregate you’re looking at is correct you have to run through all the transactions.

To speedup sync in BTC it is assumed that blocks older than some amount of YEARS are valid but you still have to go through their transactions to build up the aggregate UTXO set.

In ETH instead it is common to just download the result and trust it’s valid. And since it’s now impossible to sync from origin you can never tell if some account doesn’t have ether created from nothing.

Re:Why I’m so “against” Ethereum by bouncycastle on Saturday December 29, 2018 @09:23AM (#18783676)
> how do you know what it’s supposed to be

The information is in the block headers.

> In ETH instead it is common to just download the result and trust it’s valid

Nope. You still have to download all the block headers from block 0 and check if they are valid, including the PoW and other hashes.. The blocks are basically tamper proof as in Bitcoin (but can also be vulnerable to a 51% attack)

Then that's where it all diverges from Bitcoin: in Ethereum, there are three merkle trees: one for the state, one for transactions and one for the transaction results (receipts). The roots of these trees are in the blocks, once you have these, you can verify a particular value of, say, a state value, without the need to verify each and every other value, by walking through the tree and doing a merkle proof. There's plenty of info on the web explaining how it works if you look it up, eg. Search for "ethereum state trie"

As for syncing, recently it improved a lot. I did it a few times last month with Geth on an old machine just to test it out. Synced within 2 days, a big improvement over the previous versions of Geth. And yes, it got all the blocks from 0 to current. Blocks by themselves are very light.

Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @10:20AM (#18783948)
> The information is in the block headers

> You still have to download all the block headers from block 0 and check if they are valid, including the PoW and other hashes..

and unless you validate those blocks you don't know if the chain you're looking at is valid. headers don't help with that.

> The blocks are basically tamper proof as in Bitcoin (but can also be vulnerable to a 51% attack)

vulnerability to 51% attack depends on cost of such attack. if it is "normal" in ethereum to trust third parties with state of just couple hundred blocks old - the attack becomes very cheap. and if i understand correctly that's the case with majority of ethereum nodes as they aren't fully validating and are in fast sync or light mode.

in BTC `--assumevalid` points to a block that is more than year and a half old.

> The roots of these trees are in the blocks, once you have these, you can verify a particular value of, say, a state value, without the need to verify each and every other value, by walking through the tree and doing a merkle proof.

except when the state you downloaded from third parties and assumed was valid, was actually forged. since you're not executing transactions you can't know what transaction receipts would have been created.

> And yes, it got all the blocks from 0 to current. Blocks by themselves are very light.

nah, i call bs. it might have downloaded them but didn't validate anything beyond headers and some recent transactions. admittedly i haven't checked for like half a year, but full sync was literally freezing and not completing at all on powerful laptops and aws instances. it's quite possible the wonder kids of javascript cryptocurrency finally fixed their shit but i wouldn't bet my money on it.

Re:Why I’m so “against” Ethereum by CryptoPunk on Saturday December 29, 2018 @04:38AM (#18782850)
Bitcoin nodes could download the most recent UTXO index too. Validating the entire history is necessary in both if you want to trust nothing except the client code you're given.

An archival node in Ethereum goes beyond a full node, and stores data not needed to do full validation.

A full node in Ethereum needs to download about 80 GB I believe, which is a tenth of what an archival node needs to download and store.

Re:Why I’m so “against” Ethereum by bouncycastle on Saturday December 29, 2018 @10:49AM (#18784091)
archival node doesn't need to download anything extra. It just reconstructs everything just from the blocks.
Re:Why I’m so “against” Ethereum by xiphias2 on Friday December 28, 2018 @10:57PM (#18781719)
I guess you're not doing a full sync. Here's an example of a person trying to do it:

https://ethereum.stackexchange.com/questions/37348/parity-fu...

Re:Why I’m so “against” Ethereum by nootropicat on Saturday December 29, 2018 @10:53AM (#18784114)
Ssd is needed (or enough ram) due to random access of state. See my reddit post from a year ago, full sync took 25 hours: https://www.reddit.com/r/ethereum/comments/7n4v64/correcting...

There's a lot of misinformation, some originating due to genuine problems (trying to use a hdd or geth with barely working garbage collector) and misunderstandings, some from intentional lies (especially two r/bitcoin moderators - thieflar and stopanddecrypt).

Re:Why I’m so “against” Ethereum by CryptoPunk on Saturday December 29, 2018 @04:32AM (#18782838)
An archival node goes beyond a full node and downloads data not needed for full validation.
Re:Why I’m so “against” Ethereum by nootropicat on Saturday December 29, 2018 @10:55AM (#18784117)
It doesn't download them, the state history is generated from the blockchain locally. The blockchain itself is 68GB (uncompressed, decimal G)
Re:Why I’m so “against” Ethereum by nostrademons on Friday December 28, 2018 @10:08PM (#18781531)
Similar experience with geth on an m5.large EC2 instance and 500G SSD.

The SSD vs. hard disk distinction is key. I ran into the "it will literally never complete" issue trying to sync to an external HD on my home MBP - I ran it for about a week and it didn't work. Tried parity as well, same result. Once I decided I'd just rent a big SSD from Amazon I had no problem.

Re:Why I’m so “against” Ethereum by xiphias2 on Friday December 28, 2018 @11:03PM (#18781739)
Were you passing --gcmode=archive --syncmode=full flags? If not, then it's just a light node.

Here's an example: https://github.com/ethereum/go-ethereum/issues/16237

,,Seems like it does indeed proceed but very slowly. After 12 days on the 96gig ram machine I am finally at block 4732597... I will report back how long it takes to finish.''

Re:Why I’m so “against” Ethereum by nostrademons on Friday December 28, 2018 @11:36PM (#18781858)
No, I was doing a fast sync (but not a light sync, which is different). I wanted and got the transaction history & full code for each smart contract on the chain, but didn't care about verification of each transaction in the chain.

You can run a full node that verifies everything on an ongoing basis without doing a full sync from the genesis block - just start it in fast sync, let the chain catch up, and then run it again in full mode. Unless you believe the Ethereum blockchain has already been compromised, there's no reason why your personal node has to verify everything from the genesis block.

Re:Why I’m so “against” Ethereum by thinkmassive on Saturday December 29, 2018 @12:44AM (#18782111)
gcmode=archive is not required for a full node. It indexes every transaction in a database, which is unnecessary for most applications. It’s similar to txindex in bitcoind, but the Ethereum db is already much larger, so it takes weeks to sync in this mode.
Re:Why I’m so “against” Ethereum by xiphias2 on Saturday December 29, 2018 @01:19AM (#18782230)
I see, the problem was that it's hard to find documentation about what's needed for an Ethereum full node. As I'm just running Bitcoin full node, I don't have any personal experience with it.
Re:Why I’m so “against” Ethereum by thinkmassive on Saturday December 29, 2018 @03:57AM (#18782731)
Re:Why I’m so “against” Ethereum by xur17 on Friday December 28, 2018 @10:15PM (#18781567)
> This is an important yet under-appreciated point. It's now extremely difficult to sync an Ethereum node from scratch. If the processes ever completes on commodity hardware, it takes weeks. And that difficulty will only climb as more and more stuff gets dropped onto the Turing-Complete "world computer."

This is simply untrue. I recently synced an Ethereum node on a 2 year old desktop computer. Took ~1 day.

Re:Why I’m so “against” Ethereum by xiphias2 on Friday December 28, 2018 @11:05PM (#18781742)
You did a fast sync, not a real full sync (which verifies the transactions since the genesys block).
Re:Why I’m so “against” Ethereum by erulabs on Saturday December 29, 2018 @12:33AM (#18782071)
Right, but re-verifying every txn (a "full sync") isn't exactly the topic. You do not need to re-verify every txn to run an Ethereum node, which is what the article suggests is extremely difficult. And that's not a "light" node, it's a full node, you're just trusting the network initially (additional "trust" is "built" as transactions are processed by the node, which is the beauty of the merkle tree structure). It certainly makes plenty of sense that single handedly reverifying the entire chain will become increasingly difficult with respect time and energy. It becomes a very complex argument about network trust at that point, but the point still stands that "It's now extremely difficult to sync an Ethereum node from scratch" is a very dubious statement (for admittedly varying definitions of 'extremely difficult')
Re:Why I’m so “against” Ethereum by xiphias2 on Saturday December 29, 2018 @01:17AM (#18782224)
I'm not saying that it's completely bad, but with Bitcoin the devs work really hard to improve the software to make sure that the time for full resync doesn't grow too much, and that it can run on an average laptop that has SSD.

The biggest problem with the fast sync is that sometimes when Ethereum node gets stuck, the devs just suggest to do a new fast sync, which - in my opinion - requires enourmous amount of trust in the developers. Hard forks also require a lot of trust, as old software can't be run side-by-side with new software to validate the blockchain.

Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @04:48AM (#18782876)
> you're just trusting the network initially

Yeah, let’s “just” trust random strangers’ computers to tell us the state of financial system. What could possibly go wrong.

If you don’t understand importance of “don’t trust, verify” than you shouldn’t have anything to do with cryptocurrencies (or cryptography for that matter).

Re:Why I’m so “against” Ethereum by man-and-laptop on Saturday December 29, 2018 @05:34AM (#18783004)
Forgive me if I'm misunderstanding, but I disagree with you.

A merkle tree is a recursive structure. If you trust a substructure of it, then you don't need to repeatedly re-evaluate that substructure. What that means in practical terms is if the merkle-tree entry summarising the state of the chain as it was a year ago is assumed correct, then you don't need to keep any of the transaction data from before that point.

But this can only work if you don't have to look back. In Bitcoin, every transaction references an arbitrary previous transaction to prove that it has sufficient funds. You would therefore need "checkpoint" transactions that say "This is the amount of money everybody's got now; we can now forget the past".

Re:Why I’m so “against” Ethereum by anticensor on Saturday December 29, 2018 @08:39AM (#18783501)
It is possible to create new transaction outputs using old UTXOs, hence nodes can do its own checkpointing if they wish, with a loss of transaction fee.
Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @06:13AM (#18783103)
you are misunderstanding. you're given a state of accounts and it has "correct" signature (according to a third party) - without verifying every transaction that contributed to building that state you cannot be certain it doesn't contain invalid records. merkle has nothing to do with it, you either verify or you trust a third party.

checkpointing ethereum state or checkpointing bitcoin utxo set is a way to trade away security, decentralization and trustlessness for faster bootstrap. and ethereum folk have become way to relaxed about that fact.

Re:Why I’m so “against” Ethereum by apron1 on Friday December 28, 2018 @09:29PM (#18781371)
Vitalik Buterin disagrees with you specifically on the topic of endlessly increasing impractical eth blockchain:

https://medium.com/@VitalikButerin/because-of-ethereums-expo...