Proposal for Real-world Testing of Bitcoin XT

The blocksize / Bitcoin XT debate is getting pretty heated (see this thread). In Computer Science, real data and real deployments are the things which matter and no amount of arguing or simulations are a substitute for real deployments.

“In theory, there is no difference between theory and practice. But, in practice, there is.”

For the blocksize debate, people usually point out that network bandwidth/latency is limited in different parts of the world and larger blocks can mean that only people with high bandwidth connections can participate in the network. We can easily test this out. There is a great resource PlanetLab that is used by thousands of researchers to run real-world experiments. Think of PlanetLab as Amazon AWS for researchers. It has real nodes/hardware deployed all over the world and you can run real experiments on it. Instead of debating “what will happen when someone in India with a 256 Kbps joins XT with 8MB blocks”. You can actually run XT on nodes in India using PlanetLab and just see what happens. I’m happy to put XT developers in touch with the PlanetLab core devs for this experiment.

Real data trumps everything. Period.

7 Likes

I’m always for more data, though once we get the data, the next step will be answering yet another question upon which there is no consensus:

What are the acceptable minimum resource requirements and costs for a user to run a node?

1 Like

Agreed and I’d narrow down the experiment even further by trying to answer what is the minimum bandwidth uplink/downlink requirement (network links are not going to be symmetric) for running a node, given you want this to be a global system (users anywhere in the world should be able to join it).

Personally, I’d feel a lot better about supporting a larger blocksize if we know that Bitcoin nodes running at hundreds of geographically distributed PlanetLab locations with varying hardware/network resources seem to be doing just fine.

1 Like

Muneeb, I think this is a great idea. It’s vital to have testing on geographically-distributed network of nodes.

1 Like

FYI, every single core developer I could find supports safe block size increases. I can’t find a single exception.

Given the lack of opposition to increasing the block size, the dangers of XT and XT’s dictatorship government, there seems to be zero reason to support XT.

At the same time I support efforts to gather data about what it looks like when 8MB blocks are used vs 1MB blocks, so good luck with the simulation!

Posted on the Bitcoin XT Google group: https://groups.google.com/forum/#!topic/bitcoin-xt/P8We1DokNUk

1 Like

Mike Hearn’s reply:

I believe Gavin already did do some network tests with regtest nodes spread across different servers in different geographies. He also build a mining simulator that simulates various latencies etc: https://github.com/gavinandresen/bitcoin_miningsim

There has actually been quite a lot of testing and research behind BIP 101. Perhaps next week Gavin can weigh in on whether PlanetLab testing would help or just duplicate work he already did.

Cool beans.

2 Likes

Thanks @greg! And it’s not a simulation. Simulation = useless. PlanetLab = real deployment :slight_smile:

Thanks @drwasho for posting there!

Adding some more background to why I think simulations are harmful. I actually used to do a lot of research work with simulations. Model a network topology, introduce latency (just like Gavin is doing in the simulator), and so on. We, and by we I mean the entire research community working on wireless networks of embedded devices, learned the hard way that our simulations were basically meaningless. A protocol that worked in a simulator wouldn’t work in real-life. That’s one of the main reasons why PlanetLab exists and why it got the SIGCOMM test of time award. In the past 10+ years basically any significant real networked system developed by research labs / universities was deployed and tested on PlanetLab. It is a 1000x better than doing simulations.

In fact, I’d go far enough to say that no testing is better than doing simulations. Simulations give you the false satisfaction that you’ve tested something, when you really have not. This is especially true for computer networks. I realize that simulations have their place in other areas.

2 Likes

Yes, that’s right, sorry I said the wrong word. :smile:

@muneeb Something else that would be useless is if this experiment did not include a complete and thorough test from behind China’s great fire wall.

For me to be able to even consider this test to not be a total waste of time, you would need:

  1. Extremely high bandwidth and high power XT nodes in USA next to Internet back bone along with similar nodes spread around the world directly connected to each other, actively conducting a selfish mining attack.
  2. High power mining but low bandwidth XT nodes in China behind the great firewall.
  3. Low bandwidth and low power non-mining XT nodes all over the world.

Those XT nodes should be using 8MB (or preferably 20MB) blocks. Then conduct the whole thing again using only Core nodes at 1MB.

That is the threat model we’re dealing with.

I’ll let @jude confirm, but I think PlanetLab has nodes in China. The image below is outdated, but gives you an idea of the locations and quantity of nodes

2 Likes

Confirmed. There are ~40 PlanetLab nodes with .cn domains, and about half of them are online right now.

2 Likes