create account

How to Process 100M Transfers / Second on a Single Blockchain by dantheman

View this thread on: hive.blogpeakd.comecency.com
· @dantheman ·
How to Process 100M Transfers / Second on a Single Blockchain
<center> https://cdn3.computerworlduk.com/cmsdata/features/3640764/blockchain_thumb800.jpg </center>

In yesterday’s article I suggested that blockchains need to be able to process transactions at a rate of 10 million per second (offline) in order to sustain 1000 transactions per second realtime while only adding 1 hour per year to the replay time. Today I would like to present a solution to achieving this level of performance for the specific case of transfers.

Lets assume there are 3000 transfers in a block (blocks are 3 seconds apart).  To process these 3000 transfers at a rate of 10M per second means we have 300us  (.3 milliseconds) to apply the transfers. Using the current ChainBase architecture performing these transfers would take 0.15 seconds (assuming 5us per transfer).  We need to accelerate this operation by a factor of 500 to achieve our goals.

## Single Thread is not Viable 

The act of transferring from one account to another involves subtracting from one balance and adding to another balance. In computational terms it doesn’t get much simpler than this and there is very little room to improve single threaded performance.  

## Order of Operations Matters 

Lets assume an initial condition where Alice has 100 SBD and Bob has 0 SBD.   A single block can support Alice transferring 100 SBD to Bob and Bob transferring 100 SBD to Eve so long as Alice’s transfer is applied first.

As things are currently defined it is not possible to perform two transfers in parallel because Bob’s transfer is not valid until after Alice’s transfer completes. Furthermore, if they were operating in parallel there would be a race condition on reading and writing the balances.  

## Redefining the Semantics of a Transfer

What if we redefined the requirements for a valid block to require that each account may receive at most one deposit or one withdraw. Under these more restrictive definitions we can now apply all 3000 transfers in parallel.   Since each transfer only takes 5us and we have 15us, we can allow each account up to 3 deposits or withdraws per block.  With 3 second blocks this means that each account has a maximum transaction rate of 1 TPS but the blockchain as a whole can process 200,000 * THREAD COUNT transactions per second.  It is entirely possible to build a workstation that [supports 44 cores](https://www.mediaworkstations.net/product/i-x2/) which means that this blockchain should be able to process 8.8M transfers per second.

## Achieving 100M transfers per second
With some small tweaks to memory layout and operation ordering it should be easy to make up the difference required to get to 10M transfers per second.  With a bit more optimization designed to run the blockchain on a GPU this could scale to 100M transfers per second.


## Real World Throughput 

Having a CPU that can process 10M transfers per second, means we have a blockchain that can sustain 1000 transactions per second with a growth rate of 100KB/sec or 3 TB per year with a rsync rate of 1 hour per year and require reading the blockchain from disk at 1GB per second.  


It should be obvious that downloading a 30TB blockchain over a gigabit connection would take days after 10 years of operation at 1000 transactions per second. Keeping track of all blockchain history for all time will be a very expensive undertaking at 1000 transactions per second.  


## Eliminating the Need to Replay 

A large part of our scalability problem is requiring all nodes to replay all transactions to reliably derive the current state.  This replay time could be entirely eliminated if a blockchain had a fixed and well defined “current state”.   If the only thing the blockchain was concerned with was balance transfers, then every smartphone owner in the world could have an account with a database size of less than 256GB.  

Steem has intentionally kept the structure of the blockchain state “undefined” to give us the greatest flexibility to optimize going forward, especially as we keep adding features. A simple currency blockchain has no need to add an unbounded number of features.  This means we can define an optimal data-structure for its state. The hash of this data structure could be included in the blockchain from time to time and new users could simply download this state and start applying new blocks.

## Key to Growth 

A blockchain that desires to scale must achieve the following:

1. perform a small number of well defined tasks
2. operate on a protocol defined state 
3. minimal change in function over time 
4. ensure that all transactions in a block are independent
5. minimize the number of sequential steps per block

The best way to achieve these properties while maintaining flexibility is to have a robust cross-chain communication protocol and keep all new / changing features on separate chains. You could have one chain for STEEM, one for SBD, one for STEALTH STEEM, and one for STEALTH SBD.  Each of these parallel chains would have the potential to process 1000’s of transactions per second and have a fixed, well-defined state.  This alone gives the transfer throughput a 4x scalability boost.

## Leveraging Ample Real-Time Capacity

There is a clear gap between the 1000 transactions per second being processed in real-time and the 10M transactions per second that get processed during replay. During real time evaluation of the blockchain the CPU is idle 99.9% of the time.  We can use this idle time to perform extra computations that are not necessary during replay.

Among these calculations are the scheduling of operations in a block. The protocol can require that all valid blocks keep operations sorted by account. It can even organize operations by memory access patterns and calculate the best execution strategy.  These calculations take extra time to perform while building the blockchain, but can be completely skipped during replay. When replaying the blockchain we are only concerned with deriving the proper state, not verifying that all the steps are authorized and well formed (that is guaranteed by the hash linking of blocks).

This can be viewed like a compiler interpreting a program to generate assembly.  Once the assembly is generated the CPU can process it very quickly.  Another analogy would be a CPU that re-orders instructions to maximize performance. Block producers are responsible for building blocks that properly order transactions for maximum performance. Any block that is produced with conflicting memory accesses would be rejected.

## Conclusion 

A poorly defined problem can demand an entirely sequential solution; however, if we add a few small constraints on the problem it can easily become trivially parallel.  Block producers can do a little bit of extra work up front to ensure that all blocks can be replayed using parallel operation evaluation.  By simplifying the problem and defining the output state format as part of the protocol we can also eliminate the need to replay all together.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 420 others
properties (23)
authordantheman
permlinkhow-to-process-100m-transfers-second-on-a-single-blockchain
categoryblockchain
json_metadata{"tags":["blockchain","steem"],"image":["https://cdn3.computerworlduk.com/cmsdata/features/3640764/blockchain_thumb800.jpg"],"links":["https://www.mediaworkstations.net/product/i-x2/"],"app":"steemit/0.1","format":"markdown"}
created2016-12-01 23:16:00
last_update2016-12-01 23:16:00
depth0
children60
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length6,990
author_reputation240,292,002,602,347
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout0.000 HBD
percent_hbd10,000
post_id1,893,463
net_rshares138,439,947,418,388
author_curate_reward""
vote details (484)
@acidyo ·
Wow, this is really interesting.

As a small-time mining enthusiast I always wondered if the extra computing power that is being used to mine a cryptocurrency could be used to do something different instead than just raise the difficulty to keep the block-timer proportional.

Do you think it would be possible to assign an algorythm that let's miners "idle" during low transaction output but if "something big happens" or huge activity causes transactions to increase then it slowly starts working harder with the GPU/CPU software to keep that up? Or is that maybe a completely different field and the GPU usage is required for the hashes anyway.. I am not so technical I just like to imagine solutions to problems. :P
properties (22)
authoracidyo
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t000329955z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 00:03:30
last_update2016-12-02 00:03:30
depth1
children1
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length719
author_reputation3,313,735,025,347,871
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,712
net_rshares0
@rishi556 ·
$1.05
We have software for this now.
👍  
properties (23)
authorrishi556
permlinkre-acidyo-qzgknh
categoryblockchain
json_metadata{"tags":["blockchain"],"app":"peakd/2021.09.1"}
created2021-09-15 04:33:18
last_update2021-09-15 04:33:18
depth2
children0
last_payout2021-09-22 04:33:18
cashout_time1969-12-31 23:59:59
total_payout_value0.523 HBD
curator_payout_value0.523 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length30
author_reputation132,069,978,223,667
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id106,300,187
net_rshares1,134,453,471,229
author_curate_reward""
vote details (1)
@alexgr ·
>It is entirely possible to build a workstation that supports 44 cores which means that this blockchain should be able to process 8.8M transfers per second.

Porting to GPU threading might be more practical, although I don't know if there are any obstacles.

>A blockchain that desires to scale must achieve the following:
-perform a small number of well defined tasks
-operate on a protocol defined state
-minimal change in function over time
-ensure that all transactions in a block are independent
-minimize the number of sequential steps per block

I'd also add an encoding scheme (in effect a custom-made compression), to minimize bytes used. The less bytes there are, the easier it is to fit in faster mediums of storage... It may not be a problem now, but over time it will be if a blockchain processes a lot of data...
properties (22)
authoralexgr
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161205t201001798z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-05 20:10:03
last_update2016-12-05 20:10:03
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length826
author_reputation45,645,291,230,585
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,925,891
net_rshares0
@arcurus ·
instead of limiting the  transactions per account per block, wouldnt it be enough to simply sort the transactions in an block after the accounts?
👍  
properties (23)
authorarcurus
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161207t124932000z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-07 12:49:33
last_update2016-12-07 12:49:33
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length145
author_reputation549,553,053,579
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,941,653
net_rshares4,915,487,100
author_curate_reward""
vote details (1)
@baerdric ·
Wow! That was so well explained that I understood the first third of it.  

I visualize it as the same sort of thing that voice to text does when it is only expecting numbers (phone dialing), they rarely get it wrong because they know what to expect. Because of the constraints, it only has to do a small amount of work to verify its analysis. This frees up the channel for outgoing work. 

Then you said the word "replay" and I started getting lost. But that's good, a month ago I would not have understood a thing.
properties (22)
authorbaerdric
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t031712787z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 03:17:15
last_update2016-12-02 03:17:15
depth1
children1
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length516
author_reputation30,569,184,217,332
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,895,053
net_rshares0
@edb ·
Replaying means verifying all existing transactions when a new node downloads the blockchain from scratch. 

In the past three-and-a-half years, I learned a lot about crypto by doing exactly what you did here: I kept reading articles I didn't fully understand.
👍  
properties (23)
authoredb
permlinkre-baerdric-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161213t163438337z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-13 16:34:36
last_update2016-12-13 16:34:36
depth2
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length260
author_reputation35,341,759,782,104
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,994,583
net_rshares431,599,551
author_curate_reward""
vote details (1)
@benjojo ·
If you say so dan ;)) I read every word with great interest and much excitement. I understood the words and some of the concepts but that's it. what I understand for sure is that you and your team are putting mainstream suitability of blockchains and potential for their acceptance, the best chance in the whole of crypto.
👍  
properties (23)
authorbenjojo
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t003932432z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 00:39:33
last_update2016-12-02 00:39:33
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length322
author_reputation120,749,050,383,122
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,941
net_rshares412,643,725,078
author_curate_reward""
vote details (1)
@biophil ·
> if we add a few small constraints on the problem it can easily become trivially parallel.

That's incredibly beautiful, and (to me) a bit counterintuitive. Maybe it feels natural to someone who's used to thinking about the nuts and bolts of computation, but it's not what I immediately would have expected. Good post!
properties (22)
authorbiophil
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t005054696z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 00:50:54
last_update2016-12-02 00:50:54
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length319
author_reputation45,223,914,794,461
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,019
net_rshares0
@cata22 ·
I wonder how one would combat internet fraud if everything would be done in the finance world by blockchain...?
properties (22)
authorcata22
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t104811841z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 10:48:06
last_update2016-12-02 10:48:06
depth1
children1
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length111
author_reputation306,323,111,523
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,897,045
net_rshares0
@windn ·
ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее
properties (22)
authorwindn
permlinkre-cata22-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20171102t223118938z
categoryblockchain
json_metadata{"tags":["blockchain"],"app":"steemit/0.1"}
created2017-11-02 22:31:18
last_update2017-11-02 22:31:18
depth2
children0
last_payout2017-11-09 22:31:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length638
author_reputation4,143,459,171
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id19,301,277
net_rshares0
@clains ·
So if we want to do 100000 tps realtime microtransactions. What do we do?
properties (22)
authorclains
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t020911357z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 02:09:24
last_update2016-12-02 02:09:24
depth1
children1
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length73
author_reputation64,100,587,750,682
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,666
net_rshares0
@dantheman ·
Discard history
👍  , , ,
properties (23)
authordantheman
permlinkre-clains-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t021118358z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 02:11:18
last_update2016-12-02 02:11:18
depth2
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length15
author_reputation240,292,002,602,347
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,677
net_rshares270,215,679,683
author_curate_reward""
vote details (4)
@freecrypto ·
upvoted, followed.
properties (22)
authorfreecrypto
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161201t231824878z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-01 23:18:39
last_update2016-12-01 23:18:39
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length18
author_reputation239,324,842,376,224
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,486
net_rshares0
@gikitiki ·
Let's make it happen!!!
properties (22)
authorgikitiki
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t013442666z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 01:34:42
last_update2016-12-02 01:34:42
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length23
author_reputation16,572,681,158,525
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,433
net_rshares0
@goldmatters ·
Resteemed and tweeted
👍  
properties (23)
authorgoldmatters
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161201t231649820z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-01 23:16:48
last_update2016-12-01 23:16:48
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length21
author_reputation409,743,405,777,482
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,472
net_rshares104,437,033,161
author_curate_reward""
vote details (1)
@gutzofter ·
$0.09
Very nice.
> The best way to achieve these properties while maintaining flexibility is to have a robust cross-chain communication protocol and keep all new / changing features on separate chains.

Would also give you the ability to create contextual chains. To transfer the perspective of the chain away from transactions and towards the context in which we would like to see the data. You could also build a chain from links of chains. IPFS is the closest I've seen come to this.
👍  
properties (23)
authorgutzofter
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161201t234206059z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-01 23:42:06
last_update2016-12-01 23:42:06
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.064 HBD
curator_payout_value0.021 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length480
author_reputation7,621,537,677,018
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,606
net_rshares1,806,784,078,824
author_curate_reward""
vote details (1)
@jacobcards ·
Dan you might just save the world keep up the work
properties (22)
authorjacobcards
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t121921949z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 12:19:21
last_update2016-12-02 12:19:21
depth1
children1
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length50
author_reputation48,954,175,480,649
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,897,495
net_rshares0
@windn ·
свеча
properties (22)
authorwindn
permlinkre-jacobcards-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20171102t223149251z
categoryblockchain
json_metadata{"tags":["blockchain"],"app":"steemit/0.1"}
created2017-11-02 22:31:48
last_update2017-11-02 22:31:48
depth2
children0
last_payout2017-11-09 22:31:48
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5
author_reputation4,143,459,171
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id19,301,302
net_rshares0
@klye · (edited)
<3 Loving this.

Is it possible for us to build a database free client that runs off of the heads of the block or something? 
Think similar to Electrum for Bitcoin.
properties (22)
authorklye
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t003420055z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 00:34:12
last_update2016-12-02 01:00:21
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length164
author_reputation412,341,527,771,769
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,916
net_rshares0
@krnel ·
It sounds like a great step forward for Steem and the blockchain technology overall. I don't understand it all, but adding a conditional requirement made more transfers possible at one time by including the same accounts in one block, that I do get. How much is the sorting by account or memory access pattern going to improve the speed?
properties (22)
authorkrnel
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161201t234404088z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-01 23:44:03
last_update2016-12-01 23:44:03
depth1
children1
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length337
author_reputation1,343,547,270,297,082
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,619
net_rshares0
@dantheman ·
Any step you don't perform while producing a block, you end up performing every block every time you reindex.  Even if it only saved .000001 second it would add up to meaningful time after millions of blocks.  Sorting 3000 transactions can take a lot more than .000001 seconds.
properties (22)
authordantheman
permlinkre-krnel-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161201t234711457z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-01 23:47:12
last_update2016-12-01 23:47:12
depth2
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length277
author_reputation240,292,002,602,347
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,640
net_rshares0
@l0k1 ·
It is about dividing the tasks, one per graph node per block is not the right solution - every transaction involves two nodes by user, and multiple nodes by token. Maybe one per payer. Synchronisation with massive parallelisation requires prioritisation of propagation, ensuring frequent transactions to be clustered, but whenever possible, spread across many nodes, by frequency. Geographical aggregation and association aggregation form transient maps that show how to keep sync without total convergence of blockchain state. So long as the nodes always see the current state of the parts they work with (to some degree of immediately visible provenance), it doesn't have to fully converge, or be permanently stored.

There is many approaches to this, i am very interested to see what people turn up.
👍  , , , ,
properties (23)
authorl0k1
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t143016084z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 14:30:21
last_update2016-12-02 14:30:21
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length802
author_reputation94,800,257,230,993
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,898,342
net_rshares263,143,564,818
author_curate_reward""
vote details (5)
@linkback-bot-v0 ·
This post has been linked to from another place on Steem.


  - [Advanced Steem Metrics Report for 1st December 2016](https://steemit.com/steemit/@ontofractal/advanced-steem-metrics-report-for-1st-december-2016) by @ontofractal




Learn more about and upvote to support [**linkback bot v0.5**](https://steemit.com/steemit/@ontofractal/steem-linkback-bot-v0-5-the-reddit-awareness-release). Flag this comment if you don't want the bot to continue posting linkbacks for your posts.

Built by @ontofractal
properties (22)
authorlinkback-bot-v0
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-linkbacks
categoryblockchain
json_metadata{}
created2016-12-02 19:45:03
last_update2016-12-02 19:45:03
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length504
author_reputation1,915,954,976,722
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,900,645
net_rshares0
@liondani · (edited)
$0.11
> What if we redefined the requirements for a valid block to **require** that each account may receive at most **one deposit or one withdraw.**

What would happen if someone **spams** (zero fee) Alice's account at each block with **0.0000000001 STEEM** ?  When would Alice get the chance to **transfer/withdraw** her 100 SBD since on every block her account state would be in **deposit mode**?
👍  , ,
properties (23)
authorliondani
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t013619425z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 01:36:18
last_update2016-12-02 01:40:27
depth1
children17
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.080 HBD
curator_payout_value0.026 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length393
author_reputation95,095,146,236,111
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,439
net_rshares2,143,954,477,975
author_curate_reward""
vote details (3)
@dantheman ·
$0.11
Rate limiting would prevent it.
👍  , , , ,
properties (23)
authordantheman
permlinkre-liondani-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t014006750z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 01:40:06
last_update2016-12-02 01:40:06
depth2
children16
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.095 HBD
curator_payout_value0.010 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length31
author_reputation240,292,002,602,347
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,458
net_rshares2,137,698,824,149
author_curate_reward""
vote details (5)
@abit · (edited)
$0.16
Also it would bring extra limitations if Alice NEED to receive a big quantity of payments in a short period, for example in the scenario of Alibaba Nov. 11 event ([link](https://www.technologyreview.com/s/602850/big-data-game-changer-alibabas-double-11-event-raises-the-bar-for-online-sales/)).

IMO deposit in parallel should be allowed. And perhaps withdrawals should have higher priority than deposit.

(edit: rate limit should still apply, to determine which account has higher priority to withdraw, but then it should be made into consensus, and the downside is it will cause longer replay time if need to check it during replay(edit 2: seems it's not able to make it into consensus nor able to check during replay, as suggested in the post, a bit more computation while generating block, but less while validating)).

(edit 3: theoretically it's possible to include one withdrawal and many deposits into one block, if the amount of withdrawal is less than the initial balance. However, in a single block, if there are more than one operation on same balance object, no matter they're multiple deposits or one withdrawal and some deposits, it means need to modify that object serially, which will have a negative impact on performance)
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorabit
permlinkre-dantheman-re-liondani-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t105154333z
categoryblockchain
json_metadata{"tags":["blockchain"],"links":["https://www.technologyreview.com/s/602850/big-data-game-changer-alibabas-double-11-event-raises-the-bar-for-online-sales/"]}
created2016-12-02 10:52:03
last_update2016-12-02 19:00:45
depth3
children3
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.126 HBD
curator_payout_value0.032 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,240
author_reputation141,171,499,037,785
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,897,065
net_rshares2,842,535,736,764
author_curate_reward""
vote details (34)
@liondani · (edited)
But a "strong" account could **delay** (attack) other accounts activity until "they give up", I mean until it makes enough damage  to the network(?)...
👍  
properties (23)
authorliondani
permlinkre-dantheman-re-liondani-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t014906000z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 01:49:06
last_update2016-12-02 02:00:45
depth3
children9
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length151
author_reputation95,095,146,236,111
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,508
net_rshares510,253,701
author_curate_reward""
vote details (1)
@xeroc ·
$0.03
Let me get this straight:

* We prevent people from **spending** more than once a block because of **double-spending** during parallel evaluation
* We prevent people from **receiving** more than once a block because of **write-locks** to the object in the database

Correct?
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorxeroc
permlinkre-dantheman-re-liondani-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t123615618z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 12:36:15
last_update2016-12-02 12:36:15
depth3
children1
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.026 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length274
author_reputation118,819,064,085,695
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,897,571
net_rshares698,943,853,961
author_curate_reward""
vote details (29)
@optimistic ·
Great post
properties (22)
authoroptimistic
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161201t231949578z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-01 23:19:57
last_update2016-12-01 23:19:57
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length10
author_reputation3,432,101,539,915
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,492
net_rshares0
@steemitfaucet ·
Dear CTO,

<a href="https://steemdaily.blogspot.com/2016/12/How-to-Process-100M-Transfers-Second-on-a-Single-Blockchain.html" imageanchor="1"><img border="0" src="https://4.bp.blogspot.com/-KotdfDV6MoU/WD-n2qzMPwI/AAAAAAAAAPY/89uXMfNlzHomUM4nIoEyxpUDa3zKWVDrgCK4B/s217/logo-steem-daily.png" /></a>

Resteemed and Upvoted. Excellent post! Thanks!

--------------
### 0.1 Steem was sent to CTO.
properties (22)
authorsteemitfaucet
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t043838858z
categoryblockchain
json_metadata{"tags":["blockchain"],"image":["https://4.bp.blogspot.com/-KotdfDV6MoU/WD-n2qzMPwI/AAAAAAAAAPY/89uXMfNlzHomUM4nIoEyxpUDa3zKWVDrgCK4B/s217/logo-steem-daily.png"],"links":["https://steemdaily.blogspot.com/2016/12/How-to-Process-100M-Transfers-Second-on-a-Single-Blockchain.html"]}
created2016-12-02 04:38:39
last_update2016-12-02 04:38:39
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length392
author_reputation5,585,268,131,281
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,895,495
net_rshares0
@teamsteem ·
Now you have the reason why @dantheman wasn't at the SteemFest! He's working to fix this world and I love it!
👍  
properties (23)
authorteamsteem
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161201t234425042z
categoryblockchain
json_metadata{"tags":["blockchain"],"users":["dantheman"]}
created2016-12-01 23:44:27
last_update2016-12-01 23:44:27
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length109
author_reputation284,804,541,406,803
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,623
net_rshares12,976,812,814
author_curate_reward""
vote details (1)
@tibonova ·
>Since each transfer only takes 5us and we have 15us, we can allow each account up to 3 deposits or withdraws per block. With 3 second blocks this means that each account has a maximum transaction rate of 1 TPS but the blockchain as a whole can process 200,000 * THREAD COUNT transactions per second.

It's a very good deal. Also there is Moore's law for further scaling. ;)
properties (22)
authortibonova
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t000651218z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 00:06:51
last_update2016-12-02 00:06:51
depth1
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length374
author_reputation12,908,383,350,876
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,893,736
net_rshares0
@timcliff ·
$0.10
> The best way to achieve these properties while maintaining flexibility is to have a robust cross-chain communication protocol and keep all new / changing features on separate chains. You could have one chain for STEEM, one for SBD, one for STEALTH STEEM, and one for STEALTH SBD.

If we were to go this route, would each chain need to have its own coin associated with it, along with miners, witnesses, etc. - or would they all somehow be tied together via STEEM?
👍  ,
properties (23)
authortimcliff
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t010223348z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 01:02:21
last_update2016-12-02 01:02:21
depth1
children7
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.081 HBD
curator_payout_value0.021 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length465
author_reputation272,954,445,077,789
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,118
net_rshares2,090,806,338,569
author_curate_reward""
vote details (2)
@dantheman ·
$0.11
Just one token and set of witnesses
👍  ,
properties (23)
authordantheman
permlinkre-timcliff-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t014148095z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 01:41:48
last_update2016-12-02 01:41:48
depth2
children1
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.097 HBD
curator_payout_value0.008 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length35
author_reputation240,292,002,602,347
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,471
net_rshares2,115,414,686,202
author_curate_reward""
vote details (2)
@timcliff ·
Cool, that's awesome!
properties (22)
authortimcliff
permlinkre-dantheman-re-timcliff-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t015025269z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 01:50:24
last_update2016-12-02 01:50:24
depth3
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length21
author_reputation272,954,445,077,789
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,514
net_rshares0
@thecryptofiend ·
OK so is this the same as side-chains on Bitcoin or the Lightning network?
properties (22)
authorthecryptofiend
permlinkre-timcliff-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t021758056z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 02:17:57
last_update2016-12-02 02:17:57
depth2
children4
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length74
author_reputation323,603,913,866,384
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,894,722
net_rshares0
@faddat ·
Definitely not.  

Both achieve the effect of scale, but to be frank this is much, much better.  Once segwit and lightning kick in, I anticipate some issues in the world of bitcoin, specifically because they more or less move some transactions off of the blockchain.  @dantheman's solution does not propose such madness.
👍  , ,
properties (23)
authorfaddat
permlinkre-thecryptofiend-re-timcliff-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t115348195z
categoryblockchain
json_metadata{"tags":["blockchain"],"users":["dantheman"]}
created2016-12-02 11:53:27
last_update2016-12-02 11:53:27
depth3
children2
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length320
author_reputation36,581,868,473,026
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,897,338
net_rshares66,378,676,006
author_curate_reward""
vote details (3)
@timcliff ·
Not sure.
👍  
properties (23)
authortimcliff
permlinkre-thecryptofiend-re-timcliff-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t053248304z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 05:32:48
last_update2016-12-02 05:32:48
depth3
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length9
author_reputation272,954,445,077,789
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,895,764
net_rshares12,934,360,307
author_curate_reward""
vote details (1)
@virtualgrowth ·
Shared on [twitter](https://twitter.com/Steem_Land/status/804537045351809024)
properties (22)
authorvirtualgrowth
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t040651294z
categoryblockchain
json_metadata{"tags":["blockchain"],"links":["https://twitter.com/Steem_Land/status/804537045351809024"]}
created2016-12-02 04:06:51
last_update2016-12-02 04:06:51
depth1
children1
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length77
author_reputation194,175,762,808,337
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,895,316
net_rshares0
@twitterbot ·
### ![Steem_Land](https://pbs.twimg.com/profile_images/796481381366804481/GZiD2MS0_normal.jpg) **[Steem_Land](https://twitter.com/@Steem_Land/status/804537045351809024)** tweeted @ 02 Dec 2016 - 04:05 UTC

> How to Process 100M Transfers / Second on a Single Blockchain — Steemit [steemit.com/blockchain/@da…](https://t.co/SE0t5wDjlr)
@SteemUps @SteemitPosts @steemit @steemiobot


###### *Disclaimer: I am just a bot trying to be helpful.*
properties (22)
authortwitterbot
permlinkre-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t040651294z-20161202t040752
categoryblockchain
json_metadata""
created2016-12-02 04:07:51
last_update2016-12-02 04:07:51
depth2
children0
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length440
author_reputation2,792,128,643,772
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,895,321
net_rshares0
@xeroc ·
$0.03
That's a genius solution!!
The limitations of one 'transfer' (e.g. balance changing op) per account per block makes sense to enable parallel execution of ops. I like the idea a lot, however, I am not sure if our sister Blockchain BitShares can deal with this limitation as it means that you cannot build trading bots that trade on multiple markets at the same time, but would require operators to run multiple accounts (still not a show-stopper).

Anyways, I like where this is going!
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorxeroc
permlinkre-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t122901415z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 12:29:00
last_update2016-12-02 12:29:00
depth1
children4
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.026 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length484
author_reputation118,819,064,085,695
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,897,539
net_rshares699,418,341,025
author_curate_reward""
vote details (35)
@glitterfart ·
Do we'll ever need this kind of velocity with BitShares ? It makes sense with a social plateform but the 100,000 Tx/sec seems to be enough even with BitShares eating a large % of Visa and Mastercard markets. Does it ?
properties (22)
authorglitterfart
permlinkre-xeroc-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t140118871z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 14:01:06
last_update2016-12-02 14:01:06
depth2
children3
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length217
author_reputation48,401,633,178,775
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,898,141
net_rshares0
@xeroc ·
Good point .. but BitShares is not just VISA, but also NYSE on a global scale ..
👍  
properties (23)
authorxeroc
permlinkre-glitterfart-re-xeroc-re-dantheman-how-to-process-100m-transfers-second-on-a-single-blockchain-20161202t140854449z
categoryblockchain
json_metadata{"tags":["blockchain"]}
created2016-12-02 14:08:54
last_update2016-12-02 14:08:54
depth3
children2
last_payout2017-01-02 05:18:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length80
author_reputation118,819,064,085,695
root_title"How to Process 100M Transfers / Second on a Single Blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,898,188
net_rshares177,652,092,839
author_curate_reward""
vote details (1)