As I tested my private network by flooding transaction (around 60TPS) via Horizon using JS-sdk, SCP errored. The only abnormalty that I observed was:

[Herder WARNING] surge pricing in effect! 142

Any thoughts on what it means? I traced some code and still no idea..

And it seems this warning pops out with a value >= 101 (above example=142).

2018-03-29T19:03:55.103 GBIEA [Ledger INFO] Got consensus: [seq=138207, prev=bcc7c3, tx_count=100, sv: [  txH: 724ce5, ct: 1522321434, upgrades: [ ] ]]
2018-03-29T19:03:55.424 GBIEA [Ledger INFO] Closed ledger: [seq=138207, hash=e38cbd]
2018-03-29T19:03:59.788 GBIEA [Herder WARNING] surge pricing in effect! 140
2018-03-29T19:04:00.178 GBIEA [Herder INFO] Quorum information for 138206 : {"agree":4,"disagree":0,"fail_at":2,"hash":"31e0fa","missing":0,"phase":"EXTERNALIZE"}

2018-03-29T19:04:00.188 GBIEA [Ledger INFO] Got consensus: [seq=138208, prev=e38cbd, tx_count=100, sv: [  txH: adc0c0, ct: 1522321439, upgrades: [ ] ]]
2018-03-29T19:04:00.603 GBIEA [Ledger INFO] Closed ledger: [seq=138208, hash=b3e3da]
2018-03-29T19:04:04.788 GBIEA [Herder WARNING] surge pricing in effect! 142
2018-03-29T19:04:05.116 GBIEA [Herder INFO] Quorum information for 138207 : {"agree":4,"disagree":0,"fail_at":2,"hash":"31e0fa","missing":0,"phase":"EXTERNALIZE"}

2018-03-29T19:04:05.120 GBIEA [SCP ERROR] Exception in processEnvelope state: {
   "slots" : {
      "138209" : {
         "ballotProtocol" : {
            "ballot" : "(1,[  txH: 7d6788, ct: 1522321444, upgrades: [ ] ])",

2 Answers 2


The function you linked to seems to be removing the transactions from a transaction set that have the lowest fees, until the set size equals 100.

This corresponds with the documentation which states:

Each Stellar node usually limits the number of transactions that it will propose to the network when a ledger closes. If too many transactions are submitted, nodes propose the transactions with the highest fees for the ledger’s transaction set. Transactions that aren’t included are held for a future ledger, when fewer transactions are waiting.

  • Thanks man. Any idea if the transaction volume constantly exceeds this number? I saw that Stellar could handle >1000TPS, whereas my private network (4 nodes, only different network passphrase) could not even handle 100TPS. The stellar-core process simply died out silently in the above manner.
    – cesarm
    Apr 4, 2018 at 3:45
  • 1
    That's a good question @cesarmak. I don't know, I only read the source & the docs. Perhaps the TPS measure is actually the number of operations? If so, 50 txns of 20 ops each would make 1k "TPS", for example, but I don't have any operational experience and I'm just guessing.
    – Synesso
    Apr 4, 2018 at 4:17
  • 1
    That's also my wild guess... FYR I am doing stress test and 60-80TPS (duration=days) is ok with 100% success rate, but only testing with 1Op in 1 Tx. Maybe I should try with 20Ops later.
    – cesarm
    Apr 4, 2018 at 4:39

The number of transactions per ledger is governed by a network wide setting that you need to change on a private network:

look up the upgrades endpoint on the commands documentation.

  • Thanks Mr Nicolas! I was unaware of this. Do you have any idea about the default value "[maxtxsize=NUM]" or the value for the live network?
    – cesarm
    Apr 9, 2018 at 9:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.