Crypto Mega-Thread [A.K.A Cryptocurrency mining isn't for hobbyists and Ethereum's terrible]

Figured I would revive this .

So is anyone here messing with Liquidity Pools? I just joined two pools on Uniswap and the rate has been decent for how high the gas fees are.

Also been looking at smart contract collateral but it doesn’t look to be worth it with current gas fees. Anyone have any experience?

I don’t know a whole lot about them, but I have an acquaintance that had an “oops” with one of those pools and burned about $70,000.

You yeah, read all the fees before you confirm anything

Check out Algorand, they’re basically already doing what projects like Ethereum and others are only trying to accomplish (without destroying the planet)

1 Like

Algorand has partnered with ClimateTrade, a leader in CO2 emissions transparency and traceability that is using blockchain-based solutions to improve the efficiency of sustainability efforts for leading corporations around the globe.

Okay, sounds interesting…

ClimateTrade provides a marketplace where users can directly offset their carbon footprint by selecting the most suitable carbon credits from the ones availabl

So they are not green at all, they are just shuffling the awefulness elsewhere in the form of feel good tokens.

Last year, ClimateTrade selected Algorand to power its global marketplace due to the flexible architecture, low transaction fees, and scalability that only Algorand can provide.

Uh huh, sounds like buddies helping buddies, always works out well never makes things shady.

They are operating proof of stake rather than if work which is supposed to be better but everything else noted would leads me to think they are not very green at all and are just dodging the issue.

1 Like

If you’re interested, dig in and research how it works.
Imo they’re pretty neat, but that’s just an opinion on the net

Eth is shifting to proof of stake from proof of work so won’t be a problem soon.

It has been right around the corner since 2017.
I’m gonna have to familiarize myself of what exactly are the improvements they’re planing for Eth 2.0, since there’s so many issues with it atm it’s just a clusterfuck.
What kind of POS? Finalization time? How’s the scalability gonna be? Fixing he forking issues? Is it gonna be centralized or not? (different usecases requires different approaches tho).

I need convincing. Make it make sense why it’s so hyped.
I’ll dig into it more on the weekend.

As someone who has spent months of time reading and tweaking Ethereum’s source code to try and make it perform better I can wholeheartedly say:

  1. FUCK ETHEREUM
  2. Golang is a garbage language for anything at all needing more than maybe 100MB of RAM.

What makes Ethereum so stupid? My main focus has been on disk needs. Why in God’s name does it need 1100 read IOPS just to keep up syncing with the network?! Why?! I’ll tell you why: Because each 64-byte address is stored and retrieved for every.single.transaction in a block. It is doing millions of 64-byte reads from the leveldb.

On top of that, the leveldb is set to only create 2MB files, so you end up with a folder on your system with over 150,000 files in it. The Ethereum devs just point to google’s documentation that shows it ‘only’ increases access time on the file by a few microseconds! But anyone who has used Ethereum on their boot drive knows that the system is sluggish and performs like crap. They don’t know why. But the reason why is simple: the kernel is so busy opening and closing file handles that the performance of the system grinds to a halt.

Additionally, they sync() after every.single.database write. Every single 64-byte write of a new transaction ID? That’s a sync() call. Why? Because they take the default behavior of levelDB, which says sync() is off by default, but when you explicitly set NoSync in levelDB, your storage suddenly doubles in performance! People have pointed this out to the Devs, and the Devs don’t care. They just point to google and say “change is no-op” and close the ticket.

I guess the overall thread here is that Ethereum is written by software engineers who have no clue what the hardware is capable of or good at. And as long as a computer big and powerful enough to run their crappy code exists, they’ll keep shoveling more garbage on top of it.

Let’s talk about RAM. Golang loves RAM. If you want to run an Ethereum node with a 4GB cache, you’ll need 12 GB of RAM to do that and 90% of a i7-6700k’s CPU runtime. WHY?! Well, you need ~2 GB of RAM for Ethereum to even turn on and do anything, then the 4GB of RAM you set for the cache itself, and then golang, by default, allows up to 2x RAM usage (you allocate 1GB, it allows up to 2GB to exist) before garbage collection is triggered.

BUT! Because geth is constantly allocating and deallocating lots of tiny objects, the GC ends up running constantly with the default (2x) memory overcommit limit. You can fix this by allowing geth to have a 3x memory limit, which drops your CPU usage down to about 10% of a i7-6700k, but then you need 16GB of RAM just to run your 4GB cache geth node! Yay! Good thing RAM is cheap, right guys! What’s that Timmy? RAM is $6/GB? Well…what are you, poor?!

I also tried Twitch’s “Ballast” trick. That doesn’t work in golang 1.16. The first GC run identifies that the ballast is there and nukes it. Then golang goes on to just keep allocating memory and GCing constantly. Only changing the GOGC/setGCPercent() actually works to bring CPU usage down to something sane at the cost of RAM.

And disk space. Why the hell does geth need 660GB of storage space?! And it HAS to be SSD, because of the aforementioned 1000 IOPS workload. WHY?! Because they store everything. In Bitcoin, you store the blocks, and keep a chainstate Database for just your address. In a geth node, you store everything. Every block, every transaction, every program, every program state, every account state…all of it. Because you need this information pre-calculated in order to process blocks efficiently. Note: I am NOT talking about archive mode nodes. I’m talking about full nodes. Archive nodes need around 3TB because they not only keep track of all this state information for THE ENTIRE ACCOUNT SPACE, but they also do it FOR EVERY BLOCK! Seriously, what kind of bozos write this garbage?!

Like…I just hate it so much. If they’d have written it in C, or C++, they’d be able to get a handle on their memory usage. They’d be able to just allocate a big block of memory and do all their allocations/deallocations in there to avoid fragmentation. That’s a lot less complex than most of the stuff ethereum is doing already. If they didn’t have a storage model that relied on being able to query each individual transaction they could store stuff so much more efficiently. This project is so stupid from the ground up. I really can’t wait for the next ATH of BTC so that I can sell off my ETH and never again have to hold this garbage coin. Like, woo, I made good money on my investment, but fuck I hate this piece of shit software.

3 Likes