Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wallet performance test #186

Open
wants to merge 49 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
b97ecfb
Delete push_docker_image.yml
Naviabheeman Sep 21, 2021
acc9336
added release notes for 0.5.0 release
Naviabheeman Oct 14, 2021
f6ea07a
Merge branch 'master' of https://github.com/Naviabheeman/tapyrus-core
Naviabheeman Oct 14, 2021
bb31cdb
Merge remote-tracking branch 'ct/master'
Naviabheeman Oct 14, 2021
c8d312d
added description for colored coin concensus rules
Naviabheeman Oct 21, 2021
94300bf
updated relative path to colored coin spec
Naviabheeman Oct 21, 2021
e98a16b
Merge branch 'chaintope:master' into master
Naviabheeman Oct 25, 2021
06d8e30
improved sentence in release notes
Naviabheeman Oct 25, 2021
b5c4b75
Merge branch 'master' of https://github.com/Naviabheeman/tapyrus-core
Naviabheeman Oct 25, 2021
cfb81e0
Merge branch 'chaintope:master' into master
Naviabheeman Oct 28, 2021
0d7f54c
Merge branch 'chaintope:master' into master
Naviabheeman Dec 14, 2021
2b554a6
Merge branch 'chaintope:master' into master
Naviabheeman Dec 24, 2021
984d94e
removing secp256k1 to make it a submodule
Naviabheeman Jan 16, 2022
78b508c
Merge branch 'master' of https://github.com/Naviabheeman/tapyrus-core
Naviabheeman Jan 16, 2022
7313196
new submodule src/secp256k1
Naviabheeman Jan 17, 2022
7dbc368
Merge branch 'master' of https://github.com/Naviabheeman/tapyrus-core
Naviabheeman Jan 17, 2022
d3ae577
changed checkout to v2 with submodules
Naviabheeman Jan 17, 2022
731e9c8
Merge branch 'chaintope:master' into master
Naviabheeman Jan 20, 2022
f11315c
added description for colored coin concensus rules
Naviabheeman Oct 21, 2021
f2258af
updated relative path to colored coin spec
Naviabheeman Oct 21, 2021
e137f72
improved sentence in release notes
Naviabheeman Oct 25, 2021
8066713
fixed docker image build
Naviabheeman Jan 19, 2022
1a59ee6
adding transaction generator for tapyrus testnet and wallet performan…
Naviabheeman Mar 14, 2022
809e3d9
data of 20000 utxo wallet and its blockchain
Naviabheeman Mar 14, 2022
1764c42
added tx generator and its data to new directory
Naviabheeman Mar 20, 2022
b023aaa
updated template and daemon mode
Naviabheeman Mar 20, 2022
e8f88dd
added readme to tx generator
Naviabheeman Mar 20, 2022
3d6fb1c
added todo to readme
Naviabheeman Mar 20, 2022
87f956b
edit formatting in readme
Naviabheeman Mar 20, 2022
70466a1
added output to each mode
Naviabheeman Mar 20, 2022
d920628
formatting in readme
Naviabheeman Mar 20, 2022
83fc177
formatting in readme
Naviabheeman Mar 20, 2022
f28d115
Merge branch 'chaintope:master' into master
Naviabheeman Apr 13, 2022
74c6f95
added description for colored coin concensus rules
Naviabheeman Oct 21, 2021
703d7e5
updated relative path to colored coin spec
Naviabheeman Oct 21, 2021
1cd2dec
improved sentence in release notes
Naviabheeman Oct 25, 2021
f77f3f5
fixed docker image build
Naviabheeman Jan 19, 2022
84e4b23
adding transaction generator for tapyrus testnet and wallet performan…
Naviabheeman Mar 14, 2022
50e6f7f
data of 20000 utxo wallet and its blockchain
Naviabheeman Mar 14, 2022
70b2b25
added tx generator and its data to new directory
Naviabheeman Mar 20, 2022
5a41597
updated template and daemon mode
Naviabheeman Mar 20, 2022
59e7237
added readme to tx generator
Naviabheeman Mar 20, 2022
87437bf
added todo to readme
Naviabheeman Mar 20, 2022
07287d2
edit formatting in readme
Naviabheeman Mar 20, 2022
ec7156b
added output to each mode
Naviabheeman Mar 20, 2022
521582c
formatting in readme
Naviabheeman Mar 20, 2022
830efc9
formatting in readme
Naviabheeman Mar 20, 2022
d6d9a9f
updated with testnet details
Naviabheeman Apr 24, 2022
66d8490
Merge branch 'WalletPerformanceTest' of https://github.com/Naviabheem…
Naviabheeman May 21, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/push_tapyrus-builder_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2

with:
submodules: recursive
- name: Repo metadata
id: repo
uses: actions/github-script@v3
Expand Down
59 changes: 59 additions & 0 deletions test/functional/txgenerator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
Tx Generator
------------

Tx Generator is python process based on functional test framework that can be used to populate a test network/node, generate wallet to measure the effect of utxo:block ratio on load time, cost of spending half the wallet etc

Options
--------

--maxBlockCount : stop the block and generation when the number of blocks reaches this count.
--maxUtxoCount : stop the transaction generation when the number of utxos in the wallet reaches this count
--daemon : option to set the daemon mode i.e. to start a node in any network and populate its blocks with transactions. the node's wallet spends all its utxos
--daemon_datadir : data directory for daemon mode. default is "~/.tapyrus/tapyrus-testnet"
--daemon_genesis : genesis block hex for daemon mode. default is the testnet genesis block

To run
-------

1. Spend wallet
$ python /test/functional/txgenerator/txgenerator.py
--tracerpc
--nocleanup

_output:_ rpc_trace.log

2. Generate wallet
   $ python /test/functional/txgenerator/txgenerator.py
--tracerpc
--nocleanup
--maxBlockCount
--maxUtxoCount

_output:_ rpc_trace.log, node0.zip, wallet_<<tmp>>

3. Populate a node
   $ python /test/functional/txgenerator/txgenerator.py
--tracerpc
--nocleanup
--daemon

_output:_ rpc_trace.log

RPC Trace
----------

RPC trace is generated in the tmpdir after from the test framework log. It contains the RPC call id, rpc name and elapsed time as follows:

|64| createrawtransaction |0.001198|
|65| signrawtransactionwithwallet |0.001889|
|66| sendrawtransaction |0.001697|
|67| listunspent |1.712024|
|68| getnewaddress |0.261340|
|69| createrawtransaction |0.001576|


TODO
----

1. Expand transaction template - add colored coins, signature type, invalid tx
2. Test with a real testnet node
Empty file.
Binary file added test/functional/txgenerator/data/node0.zip
Binary file not shown.
35 changes: 35 additions & 0 deletions test/functional/txgenerator/data/templates.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"txs" : [
{
"name" : "join",
"in" : 2,
"out" : 1,
"change" : 0
},
{
"name" : "joinwithchange",
"in" : 2,
"out" : 1,
"change" : 1
},
{
"name" : "send",
"in" : 1,
"out" : 1,
"change" : 0
},
{
"name" : "sendwithchange",
"in" : 1,
"out" : 1,
"change" : 1
},
{
"name" : "split",
"in" : 1,
"out" : 2,
"change" : 0
}
]
}

44,066 changes: 44,066 additions & 0 deletions test/functional/txgenerator/data/wallet20000utxo

Large diffs are not rendered by default.

Loading