BitShares Forum

Main => General Discussion => Topic started by: JianJolly on December 27, 2016, 02:25:47 pm

Title: Transaction Throughput Testing
Post by: JianJolly on December 27, 2016, 02:25:47 pm
Motivation

Scalability of consensus protocol implementations is a well known and much debated issue, in which the capacity of a blockchain to handle a large number of transactions per second plays a central role. In this regard, to test the performance of the Graphene technology, on which Bitshares is built, a group of people from the community have expressed their willingness to conduct a collaborative performance test on Bitshares. The aim of the test is to get a measure of the platform's transaction throughput by trying to execute a heavy load of transactions on the blockchain.


Design

A script will be run by multiple participants to broadcast transactions. The participants will agree on a time to run the script, and flood the network at that time for a predetermined timespan. There is no upper limit to the load of transactions, which means that more participants and better testing environment will result in a higher load.

There will be multiple phases of the test, described as follows:

Phase I: The participants will broadcast transactions at the same time with the same delay between each transaction for 1 minute.
Phase II: The participants will broadcast transactions at random times with a random delay between transactions for 1 minute.
Phase III: The participants will broadcast as many transactions as possible for 10 minutes.


Implementation

The testing will first be performed on the testnet, for which the conditions will be emulated to the mainnet environment. To this end, a total of 30 witness nodes will be installed and the necessary configurations will be made for them to get an active witness status on the testnet. Afterwards, the testing script will be written and tested by individual participants. The participants will then agree on a time to start the testing on the testnet.

As many statistically significant details as possible about the test results will be collected, compiled, visualized, interpreted, and published. A member or a group of members from the community will be chosen to execute the post-testing work.

The details of the mainnet testing will be determined later.


Roadmap

- Installation & configuration of the necessary number of testnet witness nodes.
- Writing the testing script & individual sanity checks.
- Agreeing on a time & agreeing on the details of the post-testing work.
- Performing the test on the testnet.
- Collection, refinement, and presentation of the test results.
- Deciding for the details of the mainnet testing.


Call for Participants

Please write under this thread to participate in the test for the swift communication and easy resource handling.


Relevant Links

Bitshares Telegram group: https://telegram.me/BitSharesDEX
Graphene testnet repo: https://github.com/BitSharesEurope/graphene-testnet
Documentation for producing witness nodes: http://docs.bitshares.org/bitshares/tutorials/witness-howto.html


Result

The test conducted on the testnet has successfully shown that the Bitshares network could process 3300 transactions per second. For more details, see the following post:

1h30 min BitShares Stress Test of the 15 March 2017 - 3300TXs 14000OPs (https://goo.gl/S81qsy)

Conducting the stress test on the mainnet is canceled because of the conclusiveness of the test on the testnet.
Title: Re: Transaction Throughput Testing
Post by: abit on December 27, 2016, 04:18:03 pm
Good initiative  +5%

However I don't think there are many qualified people will join (I for one, won't, sorry). For best simulation, need to setup block producing nodes in different data centers / providers all over the world, and testing nodes (for generating new transactions) as well.

We've done similar testing before launching the chain, see these posts for example:
* https://bitsharestalk.org/index.php/topic,18684.0.html
* https://bitsharestalk.org/index.php/topic,17962.0.html
* https://bitsharestalk.org/index.php/topic,18699.0.html
* https://bitsharestalk.org/index.php/topic,18751.0.html
Title: Re: Transaction Throughput Testing
Post by: GChicken on December 27, 2016, 04:21:02 pm
i will help with the testing, will be great to see the results and i think i will learn some valuable knowledge from contributing.

Will start building a node tomorrow, hosted in APAC
Title: Re: Transaction Throughput Testing
Post by: Fox on December 27, 2016, 07:45:51 pm
I will contribute at least one node to the TESTNET for this effort. Please provide a link to the github repository with your transaction generation script(s). As referenced above, previous test have been limited  not by the witness nodes processing the transactions, rather the ability of the clients to sent transactions quickly enough and at scale to generate a high volume. Focus your effort on building the transaction construction and broadcasting.
Title: Re: Transaction Throughput Testing
Post by: rnglab on December 28, 2016, 01:39:31 pm
As expressed before (https://bitsharestalk.org/index.php/topic,18337.msg235495.html#msg235495), I see no reason to promote  bitshares scalability (https://bitshares.org/technology/industrial-performance-and-scalability) before prooving the yet outstanding throughput we already have, over a sound patform.

There are features being developed that will require a hardfork.
We have @vikram back willing to work for bitshares.
Steem's graphene implementation is free software and actively developed.
If the p2p protocol or something else needs optimizations, this seems to me like the right moment to start working on it.

This would need funding of course. As I get it, dilution not always means devaluation, and even if price drops it can become a good investment if done right.

I can run segregated witness nodes and spamming peers.

And I'd be glad if we can organize this towards an official stable release.

 







Title: Re: Transaction Throughput Testing
Post by: kenCode on December 31, 2016, 08:32:58 am
BitShares Munich will allocate 2 Dedicated servers (in France and Germany at 2 different hosts), our Lead Sysadmin, and 10,000 BTS to this initiative.
Title: Re: Transaction Throughput Testing
Post by: ElMato on December 31, 2016, 09:51:56 am
Im in, i will setup a VPS in Argentina and if i have some time also some scripts to generate spam txs

Sent from my XT1063 using Tapatalk

Title: Re: Transaction Throughput Testing
Post by: kimziv on January 01, 2017, 05:43:30 am
we will contribute at least one Dedicated servers for this Testing with my partner Yao(https://bitsharestalk.org/index.php?action=profile;u=2134 (https://bitsharestalk.org/index.php?action=profile;u=2134)).  When will the Testing begin and How long will it be lasting?

I will build the node when my server is ready recently, my server will be hosted in AliYun Cloud , China.

Title: Re: Transaction Throughput Testing
Post by: Yao on January 01, 2017, 08:19:21 am
we will contribute at least one Dedicated servers for this Testing with my partner Yao(https://bitsharestalk.org/index.php?action=profile;u=2134 (https://bitsharestalk.org/index.php?action=profile;u=2134)).  When will the Testing begin and How long will it be lasting?

I will build the node when my server is ready recently, my server will be hosted in AliYun Cloud , China.
+5%

Our BitShares witness ([Witness Proposal] 1.6.71 - witness.yao (https://bitsharestalk.org/index.php/topic,23628.0.html)) is active now, we hope to have a better understanding of the witness mechanism and BitShares blockchain by participating the testing. ;)
Title: Re: Transaction Throughput Testing
Post by: teiva on January 03, 2017, 12:58:59 am
I'd like to participate too but it seems that these test have already been conducted on test net before ?
I've got a few servers in France and some VPS if needed.
Just send instructions how to proceed
Title: Re: Transaction Throughput Testing
Post by: kenCode on January 03, 2017, 07:33:35 am
I'd like to participate too but it seems that these test have already been conducted on test net before ?
I've got a few servers in France and some VPS if needed.
Just send instructions how to proceed

Thank you @teiva :)
Are you in our Telegram channel?
http://telegram.me/bitsharesdex
 
There are tons of server people in there who can help you get your servers all setup for the big test.
Thanx again!
  ken
Title: Re: Transaction Throughput Testing
Post by: abit on January 07, 2017, 03:33:28 am
Found this old post https://bitsharestalk.org/index.php/topic,18727.0.html .

Thanks to @clayop and @fav
Title: Re: Transaction Throughput Testing
Post by: aaronic on January 16, 2017, 12:50:53 pm
Hi JianJolly,

I am interested in setting up a BitShares witness node and this test effort would be a great introduction to the ecosystem. I generally use VPSs in Germany but could look at other providers if you need to be more geographically diverse. This will be my first BitShares server but I'm pretty comfortable with Linux sysadmin and software deployments.

Please let me know if this would be helpful and the timeframe of the test effort.

Cheers, Aaron
Title: Re: Transaction Throughput Testing
Post by: kenCode on January 16, 2017, 01:31:55 pm
Hi JianJolly,

I am interested in setting up a BitShares witness node and this test effort would be a great introduction to the ecosystem. I generally use VPSs in Germany but could look at other providers if you need to be more geographically diverse. This will be my first BitShares server but I'm pretty comfortable with Linux sysadmin and software deployments.

Please let me know if this would be helpful and the timeframe of the test effort.

Cheers, Aaron

Definitely, and thank you for the assistance! :)
 
@JianJolly @xeroc - Do we have a definitive date and UTC time for the event as of yet?
Title: Re: Transaction Throughput Testing
Post by: xeroc on January 16, 2017, 03:24:51 pm
Hi JianJolly,

I am interested in setting up a BitShares witness node and this test effort would be a great introduction to the ecosystem. I generally use VPSs in Germany but could look at other providers if you need to be more geographically diverse. This will be my first BitShares server but I'm pretty comfortable with Linux sysadmin and software deployments.

Please let me know if this would be helpful and the timeframe of the test effort.

Cheers, Aaron
code is over here: https://github.com/BitSharesEurope/graphene-testnet
the setup is similar to BitShares nodes: http://docs.bitshares.eu/installation/Build.html

I don't have a timeline for the stress test yet.. but we can certainly need some more witnesses to jump in. Let me know if you run into any trouble setting up a witness
Title: Re: Transaction Throughput Testing
Post by: aaronic on January 18, 2017, 12:55:59 pm
Happy to help @kenCode. It'll be a few day before I can get onto the task.

Thanks for the links @xeroc. Do you have any recommendations for the server spec? From what I have been able to ascertain from other threads something like 4GB RAM, 10-20GB HDD & 50GB bandwidth would be adequate.

Aaron
Title: Re: Transaction Throughput Testing
Post by: xeroc on January 19, 2017, 04:59:52 pm
Happy to help @kenCode. It'll be a few day before I can get onto the task.

Thanks for the links @xeroc. Do you have any recommendations for the server spec? From what I have been able to ascertain from other threads something like 4GB RAM, 10-20GB HDD & 50GB bandwidth would be adequate.

Aaron
4GB RAM is the bare minimum .. I expect it to go above that during peak rates on the network ..
Title: Re: Transaction Throughput Testing
Post by: Taconator on January 21, 2017, 02:01:51 pm
Available to participate and assist
Title: Re: Transaction Throughput Testing
Post by: xeroc on January 21, 2017, 02:40:25 pm
I just realized that the public node only runs on 2G of RAM .. that's why it crashed twice recently ..
Give me a little time and I will put it on a bigger machine ..
Title: Re: Transaction Throughput Testing
Post by: aaronic on January 24, 2017, 09:23:30 am
Hi @xeroc,

In order to keep my host OS free of all the Bitshares build requirements, I decided to go down the route of Docker. Through a bit of trial and error I managed to get a successful build using noisy's fork of your bitshares-docker repo and have a full node [5.xxx.xxx.179] up and running.

I'm now working through the process of becoming a witness based on https://github.com/cryptonomex/graphene/wiki/How-To-become-an-active-witness-in-BitShares-2.0 but not sure how to get the initial balance for LTM. Is there a faucet for the testnet?

Thanks,
Aaron
Title: Re: Transaction Throughput Testing
Post by: aaronic on January 24, 2017, 10:04:40 am
Or I could check the forums 1st … https://bitsharestalk.org/index.php/topic,21079.0.html  :D
Title: Re: Transaction Throughput Testing
Post by: xeroc on January 24, 2017, 07:06:59 pm
Hi @xeroc,

In order to keep my host OS free of all the Bitshares build requirements, I decided to go down the route of Docker. Through a bit of trial and error I managed to get a successful build using noisy's fork of your bitshares-docker repo and have a full node [5.xxx.xxx.179] up and running.

I'm now working through the process of becoming a witness based on https://github.com/cryptonomex/graphene/wiki/How-To-become-an-active-witness-in-BitShares-2.0 but not sure how to get the initial balance for LTM. Is there a faucet for the testnet?

Thanks,
Aaron
I realized that the new faucet does not send out inital funds (missed to code that part) ..
if you tell m your account name I can send you plenty of TEST :)
Title: Re: Transaction Throughput Testing
Post by: aaronic on January 25, 2017, 01:25:12 am
Awesome, thanks @xeroc . I have the account witness.aaron-ic
Title: Re: Transaction Throughput Testing
Post by: xeroc on January 25, 2017, 02:25:17 pm
sent you some TESTs
Title: Re: Transaction Throughput Testing
Post by: aaronic on January 26, 2017, 02:54:10 pm
Alright, that's more TESTs than a patient with a rare blood disorder  ;D

Witness node is configured and humming. Please vote in witness.aaron-ic
Title: Re: Transaction Throughput Testing
Post by: JianJolly on March 19, 2017, 12:38:16 pm
Thank you everyone for participating in the stress test.

Is there any plan to stress the mainnet as well?
Title: Re: Transaction Throughput Testing
Post by: xeroc on March 19, 2017, 05:58:57 pm
Is there any plan to stress the mainnet as well?
Makes no sense .. it's expensive and uses the same software .. so why would we?
Title: Re: Transaction Throughput Testing
Post by: JianJolly on March 19, 2017, 08:59:06 pm
Is there any plan to stress the mainnet as well?
Makes no sense .. it's expensive and uses the same software .. so why would we?

Hence I added this to the OP: "Conducting the stress test on the mainnet is canceled because of the conclusiveness of the test on the testnet."