<<  >> (p.14)
    Author Topic: Are we stress testing again?  (Read 33245 times)
    JorgeStolfi
    Hero Member
    *****
    Offline Offline

    Activity: 910
    Merit: 1003



    View Profile
    July 12, 2015, 02:22:23 AM
     #261

    The core client wallet lets you see estimated fees to get your transaction confirmed within the next Nth block, and adjust the fees above or below the threshold as desired.  The devs of those wallet apps need to adjust their coding, not the core devs, imo.

    I tried to explain to the devs that such an algorithm cannot exist, for the same reason that there is no algorithm that will choose the right price to bid at an auction: the desired answer depends entirely on data that does not exist yet, and must be higher than the value that others will choose, using the same or better algorithms -- in other words, the answer must be X such that X = X + 1.  

    I suppose that I should have added the "Grin" when I wrote:

    clients who have read the source code of the core implementation (and are aware of the modifications and parameter choices made by the major miners and relay nodes) can easily compute the fee that will let their transaction go through in the next N blocks, provided only that they correctly guess what fees will be paid by the 20'000 x N transactions that will be issued by the testers in the next 10 x N minutes, and also by the 800 x N transactions  that will be issued by ordinary clients who want to get their transactions in front of the queue.

    That scenario is valid now.  If things go according to the "new devs"' plans, by the end of the year the network would be *naturally* close to saturation.  These are estimated parameters:

      Max block size limit: 1 MB/block
      Average transaction size: 400 bytes/tx
      Average block size with full queues:  500 kB/block = 1250 tx/block
      Network capacity: 2.08 tx/s = 1250 tx/block = 7500 tx/h = 180'000 tx/day
      Daily average traffic: 1.74 tx/s = 1041 tx/block = 6250 tx/h = 150'000 tx/day (83% of capacity)

    Now suppose that, when you are about to pay for your airline ticket, there is a "traffic jam" caused by a temporary surge of demand

      Short-term traffic: 3.12 tx/s = 1873 tx/block = 11200 tx/h = 270'000 tx/day  (50% above capacity, 80% above daily average)
      Queue backlog: 30'000 tx = 24 blockfuls

    Let's say that you are happy to wait 2 hours = 12 blocks for your first confirmation.  The fee that you will have to pay to get nto the next N = 12 blocks (that will carry only 1250 x N = 21'600 tx) will depend on the fees of (a) those 30'000 tx in the queue, (b) the 1873 x N = 22'476 transactions that are expected to arrive in the next 2 hours, and (c) those transactions, among those 30'000 + 22'476, that will be reissued by their clients in the next 2 hours with fees adjusted (by various algorithms) so as to try to get ahead of your transaction.  

    Quote
    The results would be a) the core client would keep working just like it always does [ ... ]  Is it good for the immediate health of bitcoin to suffer these types of "attacks"?  Not particularly, because application devs were not prepared in some cases, and can't react fast enough to satisfy their users, which might hurt some levels of bitcoin adoption.  For the most part, though, I think it's a great thing, and hope someone keeps spending their money on this kind of thing.  It drives advancement, thought, and prices.

    The only thing that is more resilient than the bitcoin network is the faith of the faithful bitcoiner.  If a bug in the core implementation were to expose the private keys of half the UTXOs generated since 2012, and hackers stole all those coins, the faithful bitcoiner would point at that with pride and say that, once more, the network worked just as intended -- and that was good for bitcoin.  Grin

    Note, again, that this was not an hostile attack; it was a test, even if rather harsh and inconsiderate.  A malicious attacker would have tried to jam a substantial part of the legitmate traffic by adjusting his fees as needed to keep those transactions out of the next block, even as they updated their fees.

    By the way, here is the interim report of the previous (prematurely aborted) stress test, a couple of weeks ago:
    CoinWallet.eu Stress Test Analysis

    Academic interest in bitcoin only. Not owner, not trader, very skeptical of its longterm success.
Page 13
Viewing Page: 14