64 comments

[ 3.0 ms ] story [ 136 ms ] thread
If I am understanding - Cloudflare is suggesting that we use IPFS hashes ( https://developers.cloudflare.com/distributed-web/ipfs-gatew... ) - hence the need to update DNS records everytime you deploy... So disregard of IPNS
IPNS is currently pretty slow when it comes to retrieving content. Updating DNS records ensures a faster user experience for those retrieving the content from gateways. That being said, Protocol labs is currently working on speeding up IPNS so hopefully IPNS can be relied on more in the future.
Their gateway supports ipns but the DHT is so slow that for most people it’s just going to time out. If you try accessing ipns content you just published via ipfs.io it will take ~5 minutes to resolve which is a pretty long time. I think at that point you don’t really care about using something like cloudflare, for the cases where it’s faster it just works the way it is now.
Using Cloudflares centralized node defeats the purpose of a blockchain. Cool feature though that adds to the Ethereum network.
FTA: "But Jonathan," I hear you say, "by providing a gateway aren't you just making Cloudflare a centralizing institution?"

That’s a fair question. Thankfully, Cloudflare won’t be alone in offering these gateways. We’re joining alongside organizations, such as Infura, to expand the constellation of gateways that already exist. We hope that, by providing a fast, reliable service, we can enable people who never previously used smart-contracts to do so, and in so doing bring the benefits they offer to billions of regular Internet users.

-----

I wouldn't say it defeats the purpose. Unless you expect every user to run their own node you really have no choice but to provide one for them or rely on a trusted service like Infura. It also makes nontrivial transaction/history lookups possible by providing a more performant search layer, the results from which you can cross reference against the actual on-chain data.

Further, client-side libraries like Ethers.js use a quorum w/ multiple centralized services to help guard against censorship/errors/etc. at that level. It's an okay middle ground.

From what i know about cryptocurrencies, Ethereum has so many more use cases and functionalities built in than Bitcoin. It seems like this is what blockchain tech is all about, not just transacting money. Is there some real reason why Ethereum coin market cap is so much lower? Is it just the hype and Bitcoin being first?
(comment deleted)
Ethereum has been around for nearly 4 years now, and despite some wacky smart-contract experiments, the most compelling use of it as a platform has been CryptoKitties.

Other than that, it is mostly just a cryptocurrency.

Ethereum is novel, but it doesn't solve the right problems.

I think the defi movement with MakerDao/Dai, uniswap, and compound finance have eclipsed cryptokitties as the most compelling use.
Ok i just looked up DAI

I'm watching a video on it and all this financial babble about collateralized debt. This just sounds a lot like someone selling equity in their home.. only instead of getting cash they get some weird crypto.

Ok so the Dai is kept stable by users who are some how incentivized to keep its value at one dollar...

but it that fails another token called Maker comes in..

I;m sorry but this sounds over complicated and insane, almost like it was put together to baffle people into buying it because they feel stupid.

That's what you got out of it?

Keep researching, because Maker has been building since 2015. The more you read into it, the more you understand these design decisions and the way the system works. There's nothing overly complicated about it. You need to understand that you've likely just started thinking about crypto and blockchain design, but these guys have been living, breathing and thinking of smart contracts/blockchain since at least 2012.

You need MKR tokens for governance, like to control the interest rates as well as the price oracle whitelist. Maker is a DAO (decentralized autonomous organization).

You just proved the previous commenter's point about how overly complicated it is.
this only shows your bias. If FB or Google release a project duplicating this, it will be legit tech. Just like the whole blockchain was a ponzi scheme till FB copies most of the features and release Libra.
Prediction markets are interesting but I don't think they've taken off at all.

One of the larger issues with Ethereum is that Solidity, and the EVM as an extension, make it really, really difficult to write correct, cheap contracts.

Off the top of my head, choices like:

* uint256 as a standard word size

* the possibility of reentrancy attacks

* overflowing integers wrap around

* contract upgrades are non-trivial (particularly upgrading solidity versions using an upgradable contract paradigm).

* Operator semantics are confusing

* State mutability is not as explicit as it ought to be

I know bad language features like hoisting were fixed a while back (and maybe some of the stuff I listed as well), but many of us are stuck on pinned older versions of solidity because upgrades.

Questions like: "what transactions are present for a particular address" have non-trivial answers. Key management is difficult even for experienced users, as are addresses and identity management.

There is some momentum toward using WASM instead of EVM in future Ethereum versions, but I honestly think the proper move is to develop and use a standard language for the purposes of building secure financial contracts.

Running a full-node and keeping it healthy (let's say with state pruning, i.e. not a full archive node) is actually pretty difficult. Most people probably use infura because of this. I still don't have a great answer on how to properly determine that a node (geth, unsure about parity) is effectively 1. up to date and 2. healthy (i.e. can be load balanced), making it difficult to automate stuff like load balancer promotion / demotion.

Last week the gas price on the network went up like 20-40x for 4-5 days because of an individual contract spamming transactions with a high gas price. It seems like few people noticed and few people cared.

Ethereum is a more flexible programmable money compared to Bitcoin.

For example, I can create a smart contract where I can send money (say 10 ETH or USD2600) to my cousin every month. But I want my cousin to use this money to better him/herself. I want her/him to spend it on education (buying books, subscribing to programming course) not on something else (buying alcoholic drinks, etc). With PayPal, I can only send him/her money. But with smart contract, I can create a whitelist of merchants easily. And I can be very creative. I can create a condition on which on Sunday only, my cousin can spend some money to buy ice cream.

Not as easily as you make it sound to be. Whitelisting merchants surely will require, a whitelist. Given merchants generate brand new addresses to receive transactions, that'll be tough.
> the most compelling use of it as a platform has been CryptoKitties.

2017 called and wants it meme back.

That was a consumer facing game and all people did was get smarter about what they store on chain.

The "Gas guzzlers" list changes very frequently.

https://ethgasstation.info/gasguzzlers.php

People and organizations use Ethereum more like a collection of lambda nodes doing discreet processes and saving state in an immutable-enough way. Not really that complicated. If your use case doesn't require that level of immutability and it isn't economically feasible to pay the nodes for processing then don't use it.

(disclosure: I also am long on cryptocurrency and ethereum)

All the cryptocurrencies are greatly overvalued due to speculation. The main reasons the ethereum market cap is still lower is (1) everyone's still struggling to find good "actual use cases" for this tech, so ethereum is simply the largest dwarf in that regard (2) bitcoin has some use for "parking money" that is slightly better than ethereum because of lower historic volatility. By it's nature, using currency as a "store of value" in this way leads to more scarcity and hence higher prices.

> "lower historic volatility"

Do you have a source for this?

There's currently a big drag on Ethereum prices from the legacy of the ICO boom. During the boom, it acted like a double-pyramid-scheme: the only way to invest in ICOs was to buy Ethereum first, which made the price of ETH skyrocket, which meant for eye-popping dollar values raised by ICOs (denominated in ETH, not dollars, so the top-line had to be multiplied by the ETH price), which attracted new investors into the market, which raised the price even more, which meant that early ETH investors were sitting on large paper gains, which made them even more willing to open their money and fund ICOs, and so on.

When the bubble burst, this pyramid scheme works in reverse. Many ICO companies were holding the bulk of their assets in ETH. To convert that to dollars to fund operations, they all need to sell, and they're all fighting over the same shrunken pool of incoming ETH/USD dollars. So as more of them sell, the price dropped, which forced even more to sell, and so on.

IMHO the worst was actually the capitulation last December, which saw ETH go down to $85 from a high of $1200. (Possibly not coincidentally, this capitulation started right around when the $40M raised by a typical ICO declined in value to the roughly $5-7M that's a typical Series A.) But until ICO companies go bankrupt or start shipping useful products, they'll be a continual drag as they liquidate ETH to pay salaries.

ICO selling is mostly over - https://diar.co/ethereum-ico-treasury-balances/

It does not affect the price anymore compared to daily trading volumes

The zero-point on that graph is 2.5M ETH. It's certainly down significantly from last year, particularly when measured in dollar terms, but in terms of ETH wallets it's just about half. Withdrawals on the site you cited are at about 2/3 of their 2018 averages.
> During the boom, it acted like a double-pyramid-scheme: the only way to invest in ICOs was to buy Ethereum first

One could compare this to a situation where there is a global economy but a given type of asset or financial instrument only exists in one exchange in one country. Presumably the exchange rate of that country's currency will rise as people buy into its currency to use in investing in that new instrument/asset class.

Ethereum doesn't really add much more value than bitcoin because smart contracts aren't very useful in practice.
Also, simplicity is a feature when it comes to storing things of value. Ethereum has too many features.
Smart contracts are useless. If you want to pick a particular point out of that article to discuss I'm happy to do so but so far it looks like the same flawed reasoning that has been debunked 1000 times over on this site.
Not going off the article, but if you think that 100% of smart contracts are useless, I would like to know why the uniswap is useless in your mind. Its a decentralized exchange contract for trading tokens on ethereum

https://uniswap.io/

Decentralized exchanges are a dime a dozen and are basically ghost towns compared to the centralized exchanges.
but it can be used to trade currencies not offered by centralized exchanges, in a way where you dont have to hand over any funds to risk on a centralized exchange. is useful for me at least
There was a really embarrassing early fork, resulting in Ethereum and Ethereum Classic. https://en.wikipedia.org/wiki/Ethereum#The_DAO_event This means you can't 100% trust that your smart contracts will be honored because Ethereum miners have (now repeatedly) shown a willingness to revert them.
Almost as much embarrassing as the Bitcoin revert IMHO – https://en.bitcoin.it/wiki/Value_overflow_incident
Eh, they were very different. From a technical perspective I'm not sure which bug is worse (FWIW the Bitcoin one happened 1 year after it launched and 5 years before Ethereum launched), but the justification for forking Ethereum was weaker and more controversial.

Ethereum was forked to revert the loss of funds (about 3% the current supply of ETH I think) of users of a specific (but popular) buggy contract. Ethereum itself would have survived without the fork.

The Bitcoin bug enabled an attacker to create ~184 billion Bitcoin, resulting in something like 50,000% inflation. Not reverting that would absolutely have killed Bitcoin.

> FWIW the Bitcoin one happened 1 year after it launched and 5 years before Ethereum launched

FWIW the Ethereum one also happened 1 year after it launched.

(comment deleted)
They've also shown an unwillingness to fork other hacks, such as the Parity one: https://blog.zeppelin.solutions/on-the-parity-wallet-multisi...

I do understand that reverting is somewhat against fundamental blockchain ideals, but on the other hand – you could always just continue using Ethereum classic – if you're a more principled blockchain enthusiast.

Also the use of the word "embarassing" makes me wonder if you truly understand what massive efforts it takes to create something as ambitious as Ethereum without running into some critical bugs.

Ethereum Classic is now a separate currency. It's trading at only $8.46 USD right now.
> Also the use of the word "embarassing" makes me wonder if you truly understand what massive efforts it takes to create something as ambitious as Ethereum without running into some critical bugs.

What made the fork controversial was that it wasn't a bug in Ethereum itself (Bitcoin also had a fork due to a code bug and that was wholly uncontroversial), but rather a bug in a single contract.

Bugs in contracts will always happen, since, well, it's code. Code has bugs. What's makes it funny is that the investment terms page explaining the contract was extremely clear that the contract code itself were the only terms that mattered, not any "intent". Everyone who invested agreed to the bug, even if they didn't know about it.

And yet Ethereum Classic [where nothing was reverted] ended up with a lower valuation than mainline Ethereum [where the DAO coin loss was reverted], showing that some path-dependent mix of {users, developers, investors} prefer a system with governance to one with immutability.
Yes, it is things like hype and first mover advantage etc.

What most people don't understand is that merit and popularity are two completely different things. And they will always find these technical rationalizations for why one things takes off and another doesn't. But it's all side issues and the technical merits often barely matter to popularity.

For example, the new "cryptocurrency" Libra being promoted by Facebook and supported by Visa, MasterCard and PayPal (sworn enemies of cryptocurrency since it completely invalidates their business model) has got to 5,437 stars on GitHub practically overnight.

Yet there is some technical debate as to whether this is even truly a blockchain technology in the end due to the closed validators and reliance on fiat.

But if Libra launches, it could easily become the largest market cap, just by virtue of being inside of WeChat/Facebook.

Assuming Libra goes forward, for Ethereum to have a chance to take off, Ethereum 2.0 needs to complete its scaling upgrades and launch before Libra. And what they need to be popular is just to be attached to something trite but addictive (like Facebook). So to accomplish that, having a simple library that developers can use to embed a lightweight wallet in a mobile app, perhaps something derived from nimbus, so that a mobile app with a normal install process can contain Ethereum. Once the scaling is available, all it would take is one popular game to use it for micro-transactions, or a popular chat app to embed it. Or it could be anything as long as it's popular. For example, a NSFW apk that had to be sideloaded and has a library of Ariana Grande and other celebrity upskirt clips clips, that uses Ether subscriptions to unlock exclusive softcore smut. Just any garbage that lots of people will get off to. Like Facebook.

Ability to pay fees in a stable coin is also essential I would say.
> Just any garbage that lots of people will get off to. Like Facebook.

or drugs, like what drove Bitcoin

If you think it's hard to scale Bitcoin, imagine how hard it would be to scale Ethereum where all computers doesn't just verify transactions (really simple scripts actually) and instead run fully Turing complete scripts.

To try to do this anyway Ethereum has been adding on extreme amounts of complexity. They have many, so for unsolved, hard issues in front. For example their move to proof-of-stake (which has several major weaknesses, see the nothing-at-stake problem for example) and how they need to shard the blockchain (to avoid all nodes validating everything).

In short Ethereum is struggling to not collapse from it's own weight.

> Is it just the hype and Bitcoin being first?

Well... It is indeed just hype that Bitcoin is first.

> Is there some real reason why Ethereum coin market cap is so much lower? Is it just the hype and Bitcoin being first?

Sure, plenty.

First "coolness" and technological advantage are not correlated with price. You can make it correlated by selling to idiots, it works.

Secondly, Ethereum is the computational network and database. Ether is the toll to use that database. Market cap takes the last price someone paid to top up their Ether inventory, and multiplies it by all Ethers in existence. Okay [maybe] you know this, next:

Third, you simply don't need that much Ether to write to the database. Ether is not a scarce resource. You can run extremely complex operations for extremely cheap. IDEX - one of the most sophisticated and popular decentralized stock-like exchange - was launched by the most sophisticated Ethereum developers and it only cost 0.026916422 Ether to deploy that and force all Ethereum nodes to process for all eternity. [1] (for pedants, yes other people transacting to that contract use additional Ether as gas). They could launch 5 whole startups with 1 Ether. Basically, if the most sophisticated power users who also feel like being entrepreneurs don't even need to own 1 single Ether to use the world computer, you don't ether. So when you can explain who the other 106 million Ethers are for, you can understand how much someone will pay for this easy to acquire and cheap resource of which more will always be issued.

Only speculators and third party finance apps hoard Ether and even they don't need to, as there are better assets issued on the Ethereum network for speculation and finance apps.

The final point is that Ether is only expensive and scarce when the transactions which use miniscule amounts of Ether skyrocket. But they can't skyrocket that much because the network can't handle that many transactions! D'oh! So it is almost all speculation fuel supporting the price.

[1] - IDEX 1 deployment transaction - https://etherscan.io/tx/0x24b99bebf8a908be3d09bb8101446350cc...

You make it sound like ether can only be used to pay for gas. It can also be transferred to another account in a transaction, it's the native currency for making payments. It will also be required for staking.
> It can also be transferred to another account in a transaction, it's the native currency for making payments.

yeah, with better competitors on its own blockchain!

DAI and other stable value assets are good enough for that. DAI even has its own sidechain xDAI to let it be the native unit without needing Ether as gas, and can settle states back to the Ethereum Blockchain.

Looking forward to the staking. Vitalik has so far been a one-hit wonder 6 years ago, not sure if you should really listen to him, but some people plan on rolling out the staking version soon.

At this point, the "native currency for making payments" seems to be moving to 'wrapped ETH' or something like it, since all the higher-level infrastructure being built for security tokens et al, assumes contracts on both sides of the transaction.
Ethereum marketcap is lower because institutional investors are being sold Bitcoin by the few who are providing the onramp to these large players. They conveniently changed the narrative around bitcoin from payment system to "digital gold".

Smaller investors are chasing the shitcoins (penny stocks).

You dont have much vested interests really 'marketing' ethereum. most people involved are headsdown building great products and protocols.

"But Jonathan," I hear you say, "by providing a gateway aren't you just making Cloudflare a centralizing institution?"

The problem is the market share of these institutions. Google could argue that they aren't the sole gatekeeper to search since services like DuckDuckGo exist. This isn't really valid when you control a huge amount of the market share. I'm worried about how the internet is becoming super homogeneous, it really hurts startups. I'm not saying what Cloudflare is doing is bad, but the amount of control Cloudflare has is increasingly worrying based of all the services they are launching. Look at what it did to The Daily Stormer (I think they are disgusting and have zero support for them), it's clear that they aren't unbiased. If Cloudflare blocks your service on their VPN, DNS, DDoS protection, IPFS site, Ethereum, etc you are majorly screwed. Most people aren't willing to change their setup just to visit your one service. I still think what Cloudflare does is awesome, not trying to be too negative, just a little worried.

I think with tools like ipfs the situation is similar to git and GitHub. Yes github could screw you over but it takes very little work to get off their platform. With ipfs you just change your DNS (which is something you do every time you update the content anyway.)
Yeah you're right, I might just be a little alarmist. Having these services is better than not.
For most purposes, Cloudflare is a DNS provider and CDN. There is no lack of other providers for these services, most of which would be happy to onboard another paying customer.

Unless you've structured your startup around Cloudflare's workers, I would expect ready pluggability.

Providing a gateway is not making Ethereum centralized. It's just an interface to read (or interact) with a running geth node. It's not mining/validating or contributing to the network.
My understanding of the daily stormer issue was simply that they didn't want to provide their ddos protection for them. Daily stormer was free to find another provider. And there are tons of cdns and ddos protection providers.

So I don't see how what cloudflare did there is any different than a hosting service refusing to serve pornography companies or whatever other unsavory business.

Of course, I realize the controversy was really about consistency in applying their policies. But cloudflare didn't shut anyone down.

There's always the first to fall... First it was the Nazis and White Nationalist... then the "Alt Right" ... then they labelled anyone they didn't agree with "Alt Right" or "Alt Right Adjacent" ... Now they're coming for the moderates and "TERF" feminists...

It always starts with one point and never recedes to reasonable.

And so your point is eventually they will ban half their customers? So what? They aren't even close to the only game in town.

Now if they were a monopoly or oligopoly, I would see your concern.

Private companies have always had the right to refuse service.

So as someone who is working in this space (on distributed applications using Ethereum), I want to call everyone's attention to a very important API that Cloudflare thankfully did implement: eth_getProof. As far as I am concerned, this is the most important API offered (and if anything, it is mostly sad no one has built out a few more APIs designed to make getting to the point where this is useful).

For those who don't know much about the inner workings of Ethereum, every account has state associated with it: not just its balance, but in the case of a contract its memory and its code; the memory of a contract is pretty much a sparse 256-bit addressable hash table, with everything from a single contract hashed into the same address space. This makes directly working with the memory of a contract really trivial; and, if/once you know of a specific storage slot you want, you can get it using eth_getStorageAt.

Now, what most people know is that each block contains a hash of the previous block, and "the contents of the block"; but, the setup is actually way more useful than that: each block "contains" (by hash reference) the entire current state. So, given a block header you trust, you can work off of a merkle tree of the entire Ethereum state that is rooted at that block and obtain a proof that some specific account state value is valid.

This means that light clients can opt to sync only block headers and then request proofs of the specific tiny bits of information they need from other nodes. Instead of using eth_getStorageAt to pull a storage slot from the memory of a contract, or eth_getBalance to find out how much money the account is storing, you can use eth_getProof to get a merkle path demonstration that "given the block headers you trust, you can now trust this random value you wanted to pull".

A really light client might alternatively sync some subset of block headers to some total amount of difficulty into the past (similar to people who wait for "confirmations" on Bitcoin blocks), to say "someone who is trying to fool me about this event having happened would have had to spend a million dollars of electricity to target me with fake information here, which wouldn't be worth it given the relatively small amount of my transaction I am verifying".

Another way of doing this is to correlate the current block hash from multiple providers to make sure that it is the same, and then use that opaque agreement as the root of trust for calls to eth_getProof. (An important detail: doing it like this, as opposed to correlating the thing you wanted to check, happens before any of the providers know what you are looking for, so if they are colluding they wouldn't be able to target you and the information you want to read with corrupt data.)

Essentially, since Cloudflare has implemented this specific key API (which is notable as it is a newer one that has greater resource usage on their end than other APIs, and so I have seen providers decide not to bother as they just don't get it), you don't actually have to trust them all that much when you are using this API: it feels more like working with IPFS, where "well, I asked for the file with this hash and they gave me a file that in fact does have this hash... I guess I would be shocked if it weren't the right file".

Any idea if cloudflare supports test networks like rinkeby to start developing?
FWIW, the API they provide here is a subset of the API provided by a local Ethereum node, and also the same general API surface (with the exact same protocol) as the APIs provided by Infura, AlchemyAPI, and myEtherWallet. While I also went looking for a testnet endpoint from Cloudflare (and didn't find one), it is arguably superfluous as it is drop-in compatible for things that do have testnet endpoints.
Can it be used as a full-fledged Infura replacement?