aboutsummaryrefslogtreecommitdiff
path: root/qa/rpc-tests/smartfees.py
AgeCommit message (Collapse)Author
2017-02-23Fix docstrings in qa testsJohn Newbery
This commit fixes the module-level docstrings for the tests and helper modules in qa. Many of these tests were uncommented previously - this commit ensures that every test case has at least a minimum level of commenting.
2016-12-03remove relaypriority from rpc testsAlex Morcos
2016-11-07[qa] util: Rework sync_*()MarcoFalke
* Only allow named args in sync_*() * Make sync_* fails more verbose * Add timeout to sync_chain()
2016-05-15[qa] Remove hardcoded "4 nodes" from test_frameworkMarcoFalke
2016-05-05[qa] Switch to py3MarcoFalke
2016-05-02[qa] Fix typos in doc and commentsPavel Janík
2016-05-02[qa] smartfees: Properly use ordered dictMarcoFalke
2016-04-01[qa] rpc-tests: Properly use integers, floatsMarcoFalke
2016-03-31[qa] Use python2/3 syntaxMarcoFalke
2015-12-01Add rounding helper function to util.pySuhas Daftuar
2015-11-16Expose RPC calls for estimatesmart functionsAlex Morcos
Also add testing for estimatesmartfee in smartfees.py
2015-05-18[QA] restructure rpc tests directoryJonas Schnelli
* move non-test classes to subdir `test-framework`
2015-05-13Create new BlockPolicyEstimator for fee estimatesAlex Morcos
This class groups transactions that have been confirmed in blocks into buckets, based on either their fee or their priority. Then for each bucket, the class calculates what percentage of the transactions were confirmed within various numbers of blocks. It does this by keeping an exponentially decaying moving history for each bucket and confirm block count of the percentage of transactions in that bucket that were confirmed within that number of blocks. -Eliminate txs which didn't have all inputs available at entry from fee/pri calcs -Add dynamic breakpoints and tracking of confirmation delays in mempool transactions -Remove old CMinerPolicyEstimator and CBlockAverage code -New smartfees.py -Pass a flag to the estimation code, using IsInitialBlockDownload as a proxy for when we are still catching up and we shouldn't be counting how many blocks it takes for transactions to be included. -Add a policyestimator unit test
2015-04-01Introduce separate 'generate' RPC callPieter Wuille
2015-01-07Fix smartfees test for change to relay policySuhas Daftuar
2014-11-27Fix python usage for arch's broken maintainersMatt Corallo
2014-10-27Merge pull request #5121Wladimir J. van der Laan
214091d Update license in pull-tester and rpc-tests (Michael Ford)
2014-10-24Extend getchaintips RPC test.Daniel Kraft
Add the capability to simulate network splits to the RPC test framework and use it to do more extensive testing of 'getchaintips'.
2014-10-23Update license in pull-tester and rpc-testsMichael Ford
Add missing copyright/license header where necessary
2014-07-09Refactor common RPC test code to BitcoinTestFramework base classGavin Andresen
Inspired by #3956, with a little more flexibility built in. I didn't touch rpcbind_test.py, because it only runs on Linux.
2014-06-06estimatefee / estimatepriority RPC methodsGavin Andresen
New RPC methods: return an estimate of the fee (or priority) a transaction needs to be likely to confirm in a given number of blocks. Mike Hearn created the first version of this method for estimating fees. It works as follows: For transactions that took 1 to N (I picked N=25) blocks to confirm, keep N buckets with at most 100 entries in each recording the fees-per-kilobyte paid by those transactions. (separate buckets are kept for transactions that confirmed because they are high-priority) The buckets are filled as blocks are found, and are saved/restored in a new fee_estiamtes.dat file in the data directory. A few variations on Mike's initial scheme: To estimate the fee needed for a transaction to confirm in X buckets, all of the samples in all of the buckets are used and a median of all of the data is used to make the estimate. For example, imagine 25 buckets each containing the full 100 entries. Those 2,500 samples are sorted, and the estimate of the fee needed to confirm in the very next block is the 50'th-highest-fee-entry in that sorted list; the estimate of the fee needed to confirm in the next two blocks is the 150'th-highest-fee-entry, etc. That algorithm has the nice property that estimates of how much fee you need to pay to get confirmed in block N will always be greater than or equal to the estimate for block N+1. It would clearly be wrong to say "pay 11 uBTC and you'll get confirmed in 3 blocks, but pay 12 uBTC and it will take LONGER". A single block will not contribute more than 10 entries to any one bucket, so a single miner and a large block cannot overwhelm the estimates.