[{"path":"/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"GNU General Public License","title":"GNU General Public License","text":"Version 2, June 1991Copyright © 1989, 1991 Free Software Foundation, Inc.,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone permitted copy distribute verbatim copies license document, changing allowed.","code":""},{"path":"/LICENSE.html","id":"preamble","dir":"","previous_headings":"","what":"Preamble","title":"GNU General Public License","text":"licenses software designed take away freedom share change . contrast, GNU General Public License intended guarantee freedom share change free software–make sure software free users. General Public License applies Free Software Foundation’s software program whose authors commit using . (Free Software Foundation software covered GNU Lesser General Public License instead.) can apply programs, . speak free software, referring freedom, price. General Public Licenses designed make sure freedom distribute copies free software (charge service wish), receive source code can get want , can change software use pieces new free programs; know can things. protect rights, need make restrictions forbid anyone deny rights ask surrender rights. restrictions translate certain responsibilities distribute copies software, modify . example, distribute copies program, whether gratis fee, must give recipients rights . must make sure , , receive can get source code. must show terms know rights. protect rights two steps: (1) copyright software, (2) offer license gives legal permission copy, distribute /modify software. Also, author’s protection , want make certain everyone understands warranty free software. software modified someone else passed , want recipients know original, problems introduced others reflect original authors’ reputations. Finally, free program threatened constantly software patents. wish avoid danger redistributors free program individually obtain patent licenses, effect making program proprietary. prevent , made clear patent must licensed everyone’s free use licensed . precise terms conditions copying, distribution modification follow.","code":""},{"path":"/LICENSE.html","id":"terms-and-conditions-for-copying-distribution-and-modification","dir":"","previous_headings":"","what":"TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION","title":"GNU General Public License","text":"0. License applies program work contains notice placed copyright holder saying may distributed terms General Public License. “Program”, , refers program work, “work based Program” means either Program derivative work copyright law: say, work containing Program portion , either verbatim modifications /translated another language. (Hereinafter, translation included without limitation term “modification”.) licensee addressed “”. Activities copying, distribution modification covered License; outside scope. act running Program restricted, output Program covered contents constitute work based Program (independent made running Program). Whether true depends Program . 1. may copy distribute verbatim copies Program’s source code receive , medium, provided conspicuously appropriately publish copy appropriate copyright notice disclaimer warranty; keep intact notices refer License absence warranty; give recipients Program copy License along Program. may charge fee physical act transferring copy, may option offer warranty protection exchange fee. 2. may modify copy copies Program portion , thus forming work based Program, copy distribute modifications work terms Section 1 , provided also meet conditions: ) must cause modified files carry prominent notices stating changed files date change. b) must cause work distribute publish, whole part contains derived Program part thereof, licensed whole charge third parties terms License. c) modified program normally reads commands interactively run, must cause , started running interactive use ordinary way, print display announcement including appropriate copyright notice notice warranty (else, saying provide warranty) users may redistribute program conditions, telling user view copy License. (Exception: Program interactive normally print announcement, work based Program required print announcement.) requirements apply modified work whole. identifiable sections work derived Program, can reasonably considered independent separate works , License, terms, apply sections distribute separate works. distribute sections part whole work based Program, distribution whole must terms License, whose permissions licensees extend entire whole, thus every part regardless wrote . Thus, intent section claim rights contest rights work written entirely ; rather, intent exercise right control distribution derivative collective works based Program. addition, mere aggregation another work based Program Program (work based Program) volume storage distribution medium bring work scope License. 3. may copy distribute Program (work based , Section 2) object code executable form terms Sections 1 2 provided also one following: ) Accompany complete corresponding machine-readable source code, must distributed terms Sections 1 2 medium customarily used software interchange; , b) Accompany written offer, valid least three years, give third party, charge cost physically performing source distribution, complete machine-readable copy corresponding source code, distributed terms Sections 1 2 medium customarily used software interchange; , c) Accompany information received offer distribute corresponding source code. (alternative allowed noncommercial distribution received program object code executable form offer, accord Subsection b .) source code work means preferred form work making modifications . executable work, complete source code means source code modules contains, plus associated interface definition files, plus scripts used control compilation installation executable. However, special exception, source code distributed need include anything normally distributed (either source binary form) major components (compiler, kernel, ) operating system executable runs, unless component accompanies executable. distribution executable object code made offering access copy designated place, offering equivalent access copy source code place counts distribution source code, even though third parties compelled copy source along object code. 4. may copy, modify, sublicense, distribute Program except expressly provided License. attempt otherwise copy, modify, sublicense distribute Program void, automatically terminate rights License. However, parties received copies, rights, License licenses terminated long parties remain full compliance. 5. required accept License, since signed . However, nothing else grants permission modify distribute Program derivative works. actions prohibited law accept License. Therefore, modifying distributing Program (work based Program), indicate acceptance License , terms conditions copying, distributing modifying Program works based . 6. time redistribute Program (work based Program), recipient automatically receives license original licensor copy, distribute modify Program subject terms conditions. may impose restrictions recipients’ exercise rights granted herein. responsible enforcing compliance third parties License. 7. , consequence court judgment allegation patent infringement reason (limited patent issues), conditions imposed (whether court order, agreement otherwise) contradict conditions License, excuse conditions License. distribute satisfy simultaneously obligations License pertinent obligations, consequence may distribute Program . example, patent license permit royalty-free redistribution Program receive copies directly indirectly , way satisfy License refrain entirely distribution Program. portion section held invalid unenforceable particular circumstance, balance section intended apply section whole intended apply circumstances. purpose section induce infringe patents property right claims contest validity claims; section sole purpose protecting integrity free software distribution system, implemented public license practices. Many people made generous contributions wide range software distributed system reliance consistent application system; author/donor decide willing distribute software system licensee impose choice. section intended make thoroughly clear believed consequence rest License. 8. distribution /use Program restricted certain countries either patents copyrighted interfaces, original copyright holder places Program License may add explicit geographical distribution limitation excluding countries, distribution permitted among countries thus excluded. case, License incorporates limitation written body License. 9. Free Software Foundation may publish revised /new versions General Public License time time. new versions similar spirit present version, may differ detail address new problems concerns. version given distinguishing version number. Program specifies version number License applies “later version”, option following terms conditions either version later version published Free Software Foundation. Program specify version number License, may choose version ever published Free Software Foundation. 10. wish incorporate parts Program free programs whose distribution conditions different, write author ask permission. software copyrighted Free Software Foundation, write Free Software Foundation; sometimes make exceptions . decision guided two goals preserving free status derivatives free software promoting sharing reuse software generally.","code":""},{"path":"/LICENSE.html","id":"no-warranty","dir":"","previous_headings":"","what":"NO WARRANTY","title":"GNU General Public License","text":"11. PROGRAM LICENSED FREE CHARGE, WARRANTY PROGRAM, EXTENT PERMITTED APPLICABLE LAW. EXCEPT OTHERWISE STATED WRITING COPYRIGHT HOLDERS /PARTIES PROVIDE PROGRAM “” WITHOUT WARRANTY KIND, EITHER EXPRESSED IMPLIED, INCLUDING, LIMITED , IMPLIED WARRANTIES MERCHANTABILITY FITNESS PARTICULAR PURPOSE. ENTIRE RISK QUALITY PERFORMANCE PROGRAM . PROGRAM PROVE DEFECTIVE, ASSUME COST NECESSARY SERVICING, REPAIR CORRECTION. 12. EVENT UNLESS REQUIRED APPLICABLE LAW AGREED WRITING COPYRIGHT HOLDER, PARTY MAY MODIFY /REDISTRIBUTE PROGRAM PERMITTED , LIABLE DAMAGES, INCLUDING GENERAL, SPECIAL, INCIDENTAL CONSEQUENTIAL DAMAGES ARISING USE INABILITY USE PROGRAM (INCLUDING LIMITED LOSS DATA DATA RENDERED INACCURATE LOSSES SUSTAINED THIRD PARTIES FAILURE PROGRAM OPERATE PROGRAMS), EVEN HOLDER PARTY ADVISED POSSIBILITY DAMAGES. END TERMS CONDITIONS","code":""},{"path":"/LICENSE.html","id":"how-to-apply-these-terms-to-your-new-programs","dir":"","previous_headings":"","what":"How to Apply These Terms to Your New Programs","title":"GNU General Public License","text":"develop new program, want greatest possible use public, best way achieve make free software everyone can redistribute change terms. , attach following notices program. safest attach start source file effectively convey exclusion warranty; file least “copyright” line pointer full notice found. Also add information contact electronic paper mail. program interactive, make output short notice like starts interactive mode: hypothetical commands show w show c show appropriate parts General Public License. course, commands use may called something show w show c; even mouse-clicks menu items–whatever suits program. also get employer (work programmer) school, , sign “copyright disclaimer” program, necessary. sample; alter names: General Public License permit incorporating program proprietary programs. program subroutine library, may consider useful permit linking proprietary applications library. want , use GNU Lesser General Public License instead License.","code":" Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice"},{"path":"/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Rucknium. Maintainer, author, copyright holder.","code":""},{"path":"/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Rucknium (2024). xmrpeers: Analysis Monero Cryptocurrency Peer--Peer Node Network. R package version 0.1.0, https://rucknium.github.io/xmrpeers/.","code":"@Manual{, title = {xmrpeers: Analysis of the Monero Cryptocurrency Peer-to-Peer Node Network}, author = {{Rucknium}}, year = {2024}, note = {R package version 0.1.0}, url = {https://rucknium.github.io/xmrpeers/}, }"},{"path":"/index.html","id":"xmrpeers","dir":"","previous_headings":"","what":"Analysis of the Monero Cryptocurrency Peer-to-Peer Node Network","title":"Analysis of the Monero Cryptocurrency Peer-to-Peer Node Network","text":"xmrpeers alpha project. Expect breaking changes future versions.","code":""},{"path":"/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Analysis of the Monero Cryptocurrency Peer-to-Peer Node Network","text":"Install R. Linux users install r-base r-base-dev system packages. can install development version xmrpeers GitHub git curl installed system :","code":"install.packages(\"remotes\") remotes::install_github(\"Rucknium/xmrpeers\", upgrade = FALSE)"},{"path":"/reference/compress.log.html","id":null,"dir":"Reference","previous_headings":"","what":"Extract and compress selected log lines — compress.log","title":"Extract and compress selected log lines — compress.log","text":"default arguments, function accomplishes thing Linux shell call:","code":"grep -I \"net.p2p.msg\" bitmonero.log* > extracted-xmr-log for file in bitmonero.log*.tar.gz; do tar xf \"$file\" --to-command 'egrep -Ha --label=\"$TAR_FILENAME\" \"net.p2p.msg\" || true' >> extracted-xmr-log; done xz extracted-xmr-log"},{"path":"/reference/compress.log.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Extract and compress selected log lines — compress.log","text":"","code":"compress.log( bitmonero.dir = c(\"~/.bitmonero\", \"C:\\\\ProgramData\\\\bitmonero\"), output.file = \"extracted-xmr-log\", log.filter = \"net.p2p.msg\", rm.uncompressed.file = TRUE )"},{"path":"/reference/compress.log.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Extract and compress selected log lines — compress.log","text":"bitmonero.dir Directory location log files output.file Name file created. \".tar.xz\" appended name log.filter Regular expression selects log lines. rm.uncompressed.file Remove uncompressed version extracted log file compression? affect original log files.","code":""},{"path":"/reference/compress.log.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Extract and compress selected log lines — compress.log","text":"NULL (invisible)","code":""},{"path":"/reference/compress.log.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Extract and compress selected log lines — compress.log","text":"","code":"if (FALSE) { # \\dontrun{ compress.log() } # }"},{"path":"/reference/get.p2p.log.html","id":null,"dir":"Reference","previous_headings":"","what":"Parse p2p log files — get.p2p.log","title":"Parse p2p log files — get.p2p.log","text":"Parse p2p log files","code":""},{"path":"/reference/get.p2p.log.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Parse p2p log files — get.p2p.log","text":"","code":"get.p2p.log(bitmonero.dir = \"~/.bitmonero\", output.file = NULL)"},{"path":"/reference/get.p2p.log.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Parse p2p log files — get.p2p.log","text":"bitmonero.dir Directory location log files output.file Optional file output compressed data","code":""},{"path":"/reference/get.p2p.log.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Parse p2p log files — get.p2p.log","text":"data.frame transaction gossip message peer.","code":""},{"path":"/reference/get.p2p.log.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Parse p2p log files — get.p2p.log","text":"","code":"if (FALSE) { # \\dontrun{ get.p2p.log() } # }"},{"path":"/reference/newborn.nodes.html","id":null,"dir":"Reference","previous_headings":"","what":"Print likely newborn nodes to the console — newborn.nodes","title":"Print likely newborn nodes to the console — newborn.nodes","text":"node connects node, newborn node syncing genesis block. newborn.nodes queries local Monero node node connections get_peers call prints information likely newborn nodes console. unrestricted RPC port must reachable R. function infinite loop. ctrl + c interrupt function print IP addresses likely newborn nodes recorded far. peer printed specific run newborn.nodes, even node disconnects reconnects later.","code":""},{"path":"/reference/newborn.nodes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Print likely newborn nodes to the console — newborn.nodes","text":"","code":"newborn.nodes( unrestricted.rpc.url = \"http://127.0.0.1:18081\", poll.time = 30, sync.height.lag = 30 * 24 * 90, avg_upload.limit = 10, current_upload.limit = 10 )"},{"path":"/reference/newborn.nodes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Print likely newborn nodes to the console — newborn.nodes","text":"unrestricted.rpc.url URL port monerod unrestricted RPC. Default http://127.0.0.1:18081 poll.time often, seconds, check newborn node connection. Default 30 seconds. sync.height.lag Criteria consider node \"newborn\". Nodes height greater current network height minus sync.height.lag considered newborn node. Default 3 months. avg_upload.limit Criteria consider node \"newborn\". avg_upload get_peers call must greater equal avg_upload.limit current_upload must greater equal current_upload.limit consider node \"newborn\". Default 10 limits. Sometimes node gets stuck low height, actually new syncing. criteria makes sure peer actually actively syncing data. current_upload.limit Criteria consider node \"newborn\".","code":""},{"path":"/reference/newborn.nodes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Print likely newborn nodes to the console — newborn.nodes","text":"NULL (invisible)","code":""},{"path":"/reference/newborn.nodes.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Print likely newborn nodes to the console — newborn.nodes","text":"","code":"if (FALSE) { # \\dontrun{ newborn.nodes() } # }"},{"path":"/reference/peers.ip.collect.html","id":null,"dir":"Reference","previous_headings":"","what":"Collect connected peers' IP addresses — peers.ip.collect","title":"Collect connected peers' IP addresses — peers.ip.collect","text":"Collects IP addreses peers local node established outbound connections . time set IP addreses saved CSV file. IP addreses checked optional set suspected malicious IP addresses. Information share outbound connections suspected maclicious IP addreses printed. IP addresses grouped subnet information printed check possible \"subnet saturation\" malicious entities. function infinite loop. ctrl + c interrupt function.","code":""},{"path":"/reference/peers.ip.collect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Collect connected peers' IP addresses — peers.ip.collect","text":"","code":"peers.ip.collect( csv.file = \"xmr-peers-ip.csv\", unrestricted.rpc.url = \"http://127.0.0.1:18081\", malicious.ips = NULL, top.subnet.mask = 24, n.top.subnets = 10, poll.time = 30 )"},{"path":"/reference/peers.ip.collect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Collect connected peers' IP addresses — peers.ip.collect","text":"csv.file name CSV file write read . already exists, data appended whole file used compute top subnet information. unrestricted.rpc.url URL port monerod unrestricted RPC. Default http://127.0.0.1:18081 malicious.ips character vector IP addreses suspected malicious. top.subnet.mask Numeric value. IP address subnet mask print summary information . n.top.subnets Number subnets print summary information . poll.time often, seconds, collect data local monero node. Default 30 seconds.","code":""},{"path":"/reference/peers.ip.collect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Collect connected peers' IP addresses — peers.ip.collect","text":"NULL (invisible)","code":""},{"path":"/reference/peers.ip.collect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Collect connected peers' IP addresses — peers.ip.collect","text":"","code":"if (FALSE) { # \\dontrun{ suspected.malicious.ips <- readLines( \"https://raw.githubusercontent.com/Boog900/monero-ban-list/refs/heads/main/ban_list.txt\") peers.ip.collect(malicious.ips = suspected.malicious.ips) } # }"},{"path":"/reference/ping.peers.html","id":null,"dir":"Reference","previous_headings":"","what":"Ping peer nodes for latency measurement — ping.peers","title":"Ping peer nodes for latency measurement — ping.peers","text":"Ping peer nodes latency measurement","code":""},{"path":"/reference/ping.peers.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Ping peer nodes for latency measurement — ping.peers","text":"","code":"ping.peers( bitmonero.dir = \"~/.bitmonero\", output.file = \"monero_peer_pings.csv\", sleep = 10, ping.count = 5, threads = NULL )"},{"path":"/reference/ping.peers.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Ping peer nodes for latency measurement — ping.peers","text":"bitmonero.dir .bitmonero directory monero.log file . output.file Name output file. file created bitmonero.dir. sleep Number seconds sleep round collecting new peer IPs. ping.count Number times ping peer. threads Override default number threads sending pings.","code":""},{"path":"/reference/ping.peers.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Ping peer nodes for latency measurement — ping.peers","text":"return value. Executes loop interrupted.","code":""},{"path":"/reference/ping.peers.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Ping peer nodes for latency measurement — ping.peers","text":"","code":"if (FALSE) { # \\dontrun{ ping.peers() } # }"},{"path":"/reference/txpool.collect.html","id":null,"dir":"Reference","previous_headings":"","what":"Collect txpool archive data — txpool.collect","title":"Collect txpool archive data — txpool.collect","text":"Queries local Monero node txpool per second. time arrival transaction saved database file. database file must first created txpool.init. function executes infinite loop. Input ctrl + c interrupt function.","code":""},{"path":"/reference/txpool.collect.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Collect txpool archive data — txpool.collect","text":"","code":"txpool.collect( db.file = \"xmr-txpool-archive.db\", unrestricted.rpc.url = \"http://127.0.0.1:18081\" )"},{"path":"/reference/txpool.collect.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Collect txpool archive data — txpool.collect","text":"db.file Name path database file created txpool.init. unrestricted.rpc.url URL port monerod unrestricted RPC. Default http://127.0.0.1:18081","code":""},{"path":"/reference/txpool.collect.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Collect txpool archive data — txpool.collect","text":"NULL (invisible)","code":""},{"path":[]},{"path":"/reference/txpool.collect.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Collect txpool archive data — txpool.collect","text":"","code":"if (FALSE) { # \\dontrun{ txpool.collect() } # }"},{"path":"/reference/txpool.export.html","id":null,"dir":"Reference","previous_headings":"","what":"Export txpool archive to CSV — txpool.export","title":"Export txpool archive to CSV — txpool.export","text":"Exports transaction block arrival times database file CSV file. Must use txpool.init txpool.collect first. txpool.export can used txpool.collect still running separate R session.","code":""},{"path":"/reference/txpool.export.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Export txpool archive to CSV — txpool.export","text":"","code":"txpool.export( db.file = \"xmr-txpool-archive.db\", csv.filepath = \"\", begin.date = \"1970-01-01\", end.date = \"2035-01-01\" )"},{"path":"/reference/txpool.export.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Export txpool archive to CSV — txpool.export","text":"db.file File name/path txpool archive database. csv.filepath File path CSV file created. Leave default save current working directory. begin.date Optional argument restrict data export date range. Use \"YYYY-MM-DD\" format. end.date Optional argument restrict data export date range. Use \"YYYY-MM-DD\" format.","code":""},{"path":"/reference/txpool.export.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Export txpool archive to CSV — txpool.export","text":"NULL (invisible)","code":""},{"path":[]},{"path":"/reference/txpool.export.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Export txpool archive to CSV — txpool.export","text":"","code":"if (FALSE) { # \\dontrun{ txpool.export() } # }"},{"path":"/reference/txpool.init.html","id":null,"dir":"Reference","previous_headings":"","what":"Initialize txpool archive database — txpool.init","title":"Initialize txpool archive database — txpool.init","text":"Initializes database file record arrival time transactions local Monero node.","code":""},{"path":"/reference/txpool.init.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Initialize txpool archive database — txpool.init","text":"","code":"txpool.init(db.file = \"xmr-txpool-archive.db\")"},{"path":"/reference/txpool.init.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Initialize txpool archive database — txpool.init","text":"db.file Name path database file created.","code":""},{"path":"/reference/txpool.init.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Initialize txpool archive database — txpool.init","text":"NULL (invisible)","code":""},{"path":[]},{"path":"/reference/txpool.init.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Initialize txpool archive database — txpool.init","text":"","code":"if (FALSE) { # \\dontrun{ txpool.init() } # }"}]