aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-04-23Add mempool output to daemon via command and RPCwarptangent7-17/+107
This is for the "print_pool" command and "get_transaction_pool" RPC method. Add mempool's spent key images to the results.
2015-04-14update lmdb64Riccardo Spagni22-365/+201
2015-04-11Merge pull request #261Riccardo Spagni1-1/+1
b7d8728 Don't recommend --HEAD for brew users (Sammy Libre)
2015-04-11Don't recommend --HEAD for brew usersSammy Libre1-1/+1
2015-04-11Merge pull request #260Riccardo Spagni9-8/+17
32c19c6 [fix] log level change. compilation: dns, tests (rfree2monero)
2015-04-10[fix] log level change. compilation: dns, testsrfree2monero9-8/+17
old unbound #warning does not block compilation unit tests build fine. Even though the RPC/P2P network type is required again
2015-04-10Merge pull request #259Riccardo Spagni1-2/+16
5b01493 Fixes start_mining in cli interactive mode (Thomas Winget)
2015-04-10Fixes start_mining in cli interactive modeThomas Winget1-2/+16
2015-04-09fixed static windows makefile targetsRiccardo Spagni1-2/+2
2015-04-09Merge pull request #258Riccardo Spagni1-0/+2
ae08be5 Disable DNS checkpoint updating on testnet (Thomas Winget)
2015-04-08Disable DNS checkpoint updating on testnetThomas Winget1-0/+2
2015-04-08Merge pull request #256Riccardo Spagni96-158/+42389
7d8acd1 explicitly disable AES on ARM (Riccardo Spagni) 4222b37 add arm6 target and flags (Riccardo Spagni) 5675325 new makefile targets for static builds (Riccardo Spagni) 9519526 Only compile BerkeleyDB as an option in non-static (Thomas Winget) 7b14d4a Steps toward multiple dbs available -- working (Thomas Winget) dbdcf11 blockchain_converter: Add support for resume from last block (warptangent) 4880803 blockchain_import: lengthen string for line clear (warptangent) 7476d2e blockchain_export: show progress during export (warptangent) 4bedd68 Update Blockchain::get_db() to return reference instead of pointer (warptangent) 0386e99 Add README for blockchain converter, importer, and exporter utilities (warptangent) ead7fad BerkeleyDB implementation of BlockchainDB seems to be working! (Thomas Winget) ffadb65 blockchain_export: Add compile-time support for BlockchainDB (warptangent) f6cbfb6 Add blockchain_export utility (warptangent) 275cbd4 Add support for database open with flags (warptangent) cb862cb Add mdb_flags variable to LMDB database open (warptangent) 260cc56 Add blockchain_import utility (warptangent) ca75b47 Blockchain: add get_db() accessor, needed for blockchain_import (warptangent) a3dd9d1 blockchain_converter: Add support for batch transactions (warptangent) acb5d29 Update and relocate comment that applies class wide (warptangent) bd9da6d Merges #33 (Thomas Winget) 6e9e8ab Move db_drivers/ to external/ (Thomas Winget) 56a1bf5 fixed BUILD_64 option (Riccardo Spagni) c97a685 fixed arch_width option (Riccardo Spagni) 3a3c07c fixed msys2 / mingw folders based on architecture, added license to unbound CMakeList as that is not part of standard Unbound (Riccardo Spagni) 3b3da86 moved 32-bit/64-bit detection into main CMakeLists (Riccardo Spagni) a0cbf73 removed findlmdb.cmake, no longer required (Riccardo Spagni) 0e8bbdb 32-bit LMDB, removed check for in-system LMDB as it is consensus-critical (Riccardo Spagni) 11e8157 Revert "Moved db_drivers/ into external/ for consistency" (Thomas Winget) daf2a8f Revert "Build fixed, goofed up some CMake" (Thomas Winget) e146027 BlockchainBDB passes unit tests (Thomas Winget) 43477b7 BerkeleyDB Blockchain building, not working yet (Thomas Winget) cade0da CMake wiring, minor cleanup, minor test addition (Thomas Winget) 1bc8939 BerkeleyDB BlockchainDB impl copy/paste/modify (Thomas Winget) 5112dc3 Try to not pollute cryptonote namespace (Thomas Winget) edef0bb Initial commit of BDB BlockchainDB implementation (Thomas Winget) eee3ee7 BlockchainDB implementations have names now (Thomas Winget) 5d2a2b7 Fixed includes in BlockchainDB unit tests (Thomas Winget) 8b82f3c Build fixed, goofed up some CMake (Thomas Winget) b213356 Moved db_drivers/ into external/ for consistency (Thomas Winget) 5eab480 Moved BlockchainDB into its own src/ subfolder (Thomas Winget) 0ad0784 Changed log level of debug message -- too spammy (Thomas Winget) 6485dac BlockchainLMDB: Add profiling to tx_exists() (warptangent) 83fb6d8 BlockchainLMDB: Add batch transaction support to tx_exists() (warptangent) 8529c0e BlockchainDB, BlockchainLMDB: Add profiling for DB commits (warptangent) 7a66b8b BlockchainDB: Add virtual function declarations for batch transactions (warptangent) b7a2d84 BlockchainLMDB: Add check for open database to two functions (warptangent) 58ecc58 BlockchainLMDB: Add support for batch transactions (warptangent) 8909d7d Improve block and tx processing efficiency by less repeat hashing (warptangent) 3676ac5 Add profiling to block and tx processing (warptangent) ce71abd Move LMDB storage to subfolder (warptangent) 42f8fe5 Fix formatting (warptangent) aa82f78 Fix log statement (warptangent) 26873db Remove unused variable (warptangent) 4b90fd3 Add log statement (warptangent) 2531aa3 Add and extend log statements (warptangent) 59305d3 Blockchain: match original function declaration from blockchain_storage (warptangent) cd972bd Update year and formatting in license (warptangent) b88ab64 Fix Blockchain::get_tail_id() to set parameter to last block number instead of height (warptangent) 963bc09 Revert "Bounds error, should fix #27" (warptangent) 6f1c4b4 Bounds error, should fix #27 (Thomas Winget) 84fe5fb Add compile-time support for both db implementations: in-memory and LMDB (warptangent) 8bd1983 Blockchain: reflect log updates from blockchain_storage (warptangent) 7f9b070 Blockchain: reflect log and assert updates from blockchain_storage (warptangent) 70342ec Blockchain: reflect log level of blockchain_storage (warptangent) c8d27fb Blockchain: reflect assert behavior of blockchain_storage for get_tx_outputs_gindexs() (warptangent) d00ee78 Update recently added log statement to fix possible null dereference (warptangent) acd4c36 Should fix std::min issues related to size_t (Thomas Winget) 3488359 Add in-source lmdb to build process (Thomas Winget) 4e45fae Initial import of lmdb source (Thomas Winget) 800d9b9 Remove code previously made unused and marked unused (warptangent) 0840c2f Fix height assertion in Blockchain::handle_alternative_block() (warptangent) 63051be Fix comparison between main and alternate chain's cumulative difficulty. (warptangent) 909ea81 Remove a have_block() check so alternate block can be processed (warptangent) 4d0a94b Complete implementation of transaction removal (warptangent) 1701c26 Use block index when obtaining block's difficulty for log statement (warptangent) 4eba21f Fix transfers to support mixins (warptangent) d045dfa Fix transfers (without mixins) (warptangent) 429a740 throw inline functions need to keep exception type (Thomas Winget) 14555ee Fixes segfault in Blockchain::handle_alternative_block (Thomas Winget) 5086ca1 add BlockchainDB tests to new cmake (Thomas Winget) c5c100c Obtain tx hash and tx output index from amount and output offset (warptangent) ad8200a db_lmdb: fix global index calculation off by 1 (moneromooo-monero) 57b80c5 db_lmdb: remove redundant checks (moneromooo-monero) 1362846 blockchain_converter: add --testnet for converting testnet blockchain (moneromooo-monero) c50cd95 Fixes a bug with getting output metadata from BlockchainDB (Thomas Winget) c3fa07b update comments to reflect changed code (Thomas Winget) 59d2b0e db_lmdb: do not give the group database write permissions (moneromooo-monero) 4c2a452 db_lmdb: catch attempt to remove block from an empty blockchain (moneromooo-monero) 3a3459d db_lmdb: factor all the log+throw code paths (moneromooo-monero) 3fcb8da db_lmdb: factor the MDB_val setup code (moneromooo-monero) 609cf7f blockchain_converter: a bit more user friendly output (moneromooo-monero) 2b9f737 blockchain_converter: only call data path function once (moneromooo-monero) 1860658 blockchain: do not append "testnet" to the data directory (moneromooo-monero) 1c578ad db_lmdb: remove block timestamp too when removing a block (moneromooo-monero) c93a186 db_lmdb: do not cast const away (moneromooo-monero) 198368b blockchain: fix wallet syncing from scratch (moneromooo-monero) 1d23db2 db_lmdb: do not keep a dangling pointer to stack objects (moneromooo-monero) 29b5876 db_lmdb: make cursor internal members private (moneromooo-monero) a3157d7 blockchain_storage: refactor genesis block creation (moneromooo-monero) 8e41b1e blockchain_storage: add consts where appropriate (moneromooo-monero) 98bdadc blockchain_converter: delete blockchain on succesful exit (moneromooo-monero) 256162f checkpoints: add consts where appropriate (moneromooo-monero) b7270ab blockchain: add consts where appropriate (moneromooo-monero) 23f3cb4 blockchain_db: add consts where appropriate (moneromooo-monero) 10fd6ca blockchain_db: factor some exception code (moneromooo-monero) 11129b9 blockchain_converter: use the actual blockchain location (moneromooo-monero) 0886183 build: add liblmdb to the cmake autodetection system (moneromooo-monero) 215e63b extraneous semicolon in Blockchain::complete_timestamps_vector (Thomas Winget) 8e1b7e2 raised maximum mapsize for lmdb to ~16GB (Thomas Winget) 6c8b8ac more blockchain height-related fixes, syncing other nodes code this time (Thomas Winget) 9455e0c ~ didn't work, need hard path. debug print. (Thomas Winget) 4af0918 very, VERY primitive blockchain converter (Thomas Winget) 26a7db3 add new checkpointing behavior to Blockchain class (Thomas Winget) 767aac2 Remove unused dependency (Thomas Winget) 006e106 Store output pubkeys separately, bug fixes (Thomas Winget) ab7951d Minor bugfixes, redundancy removal (Thomas Winget) 71b18d7 moar bug fixes, removed debug prints (Thomas Winget) 0915913 BlockchainLMDB seems to be working*! (Thomas Winget) 1a546e3 some bug fixes, but still needs work (Thomas Winget) 006afe2 Minor bug fixes and debug prints (Thomas Winget) 90f402e minor fixes to Blockchain.cpp (Thomas Winget) 74a1a89 Integrate BlockchainDB into cryptonote_core (Thomas Winget) d8c570b All LMDB BlockchainDB implemented, not tested (Thomas Winget) e47e343 LMDB blockchain: remove outputs and spent keys (Thomas Winget) a0af217 Adding block data to LMDB BlockchainDB coded (Thomas Winget) db00ce0 Parts of LMDB impl of BlockchainDB done and working (Thomas Winget) 1240cf8 BlockchainDB unit tests, lmdb linker flag (Thomas Winget) b98b964 Initial commit of lmdb BlockchainDB impl (Thomas Winget) bc44bc1 Initial commit of BlockchainDB tests, other misc (Thomas Winget) 90d6f8b Adding libglim as an external library (Thomas Winget) 07733f9 update new blockchain to build with new changes (Thomas Winget) 1ffbeb2 stupid past me, fixing typos and shit... (Thomas Winget) 67515b8 missing typedef (Thomas Winget) aba548c import of BlockchainDB files (Thomas Winget)
2015-04-08Merge pull request #257Riccardo Spagni6-60/+134
9bfa593 [fix] Network 1.8: unlimited the RPC connections (rfree2monero)
2015-04-08[fix] Network 1.8: unlimited the RPC connectionsrfree2monero6-60/+134
works for unit tests build, too
2015-04-07Merge BlockchainDB into upstreamThomas Winget96-158/+42389
2015-04-07Merges PR #37Thomas Winget2-3/+29
New/updated Makefile targets
2015-04-07Only compile BerkeleyDB as an option in non-staticThomas Winget4-17/+41
2015-04-06updated unbound cmake for static buildsRiccardo Spagni3-2/+34
2015-04-06explicitly disable AES on ARMRiccardo Spagni1-1/+1
2015-04-06add arm6 target and flagsRiccardo Spagni2-1/+13
2015-04-06new makefile targets for static buildsRiccardo Spagni1-2/+16
2015-04-05no newline at end of fileRiccardo Spagni1-1/+1
2015-04-05Merge pull request #255Riccardo Spagni1-1/+8
83ddc94 handle unlikely rounding up after sqrt (Javier Smooth) f2e8348 triangular distribution to choose recent outputs more often for mixins (Javier Smooth)
2015-04-05handle unlikely rounding up after sqrtJavier Smooth1-0/+3
2015-04-05triangular distribution to choose recent outputs more often for mixinsJavier Smooth1-1/+5
2015-04-05minor CMakeLists fix for Unbound, ldns -> sldnsRiccardo Spagni1-7/+7
2015-04-04reinstate accidentally removed CMakeListsRiccardo Spagni1-0/+201
2015-04-02Merge pull request #252Riccardo Spagni79-276/+7174
618f20c Network 1.7; Quieted the debug a bit. (rfree2monero) 391c7f9 Utils: use const, document dbg. Less default debug (rfree2monero) 44f4234 [fix] mac os x includes std::random... (rfree2monero) 162c993 Network 1.6: network limits, logging, +doxy (rfree2monero) a3b2226 my changelog (rfree2monero) 2900b1e doxygen files (rfree2monero) 1489310 doxygen related tool (rfree2monero) f9dba47 added windows_stream.* console colors (rfree2monero) c511abf remerged; commands JSON. logging upgrade. doxygen (rfree2monero) f79821a fix locking in count-peers thread (2) (rfree2monero) 0198ffb 2014 network limit 1.3 fix log/path/data +utils (rfree2monero) ae2a506 2014 network limit 1.2 +utils +toc -doc -drmonero (rfree2monero) 0f06dca fixed size_t on windows (rfree2monero) 39fc63f removed not needed <netinet/in.h> (rfree2monero) 5ce4256 2014 network limit 1.1 +utils +toc -doc -drmonero (rfree2monero) eabb519 2014 network limit 1.0a +utils +toc -doc -drmonero (rfree2monero)
2015-04-02Merge pull request #251Riccardo Spagni2-5/+2
c0de96f Fixed DNS resolution bug in Windows (Thomas Winget)
2015-04-02Network 1.7; Quieted the debug a bit.rfree2monero3-11/+15
Really really finall version of this changes I hope.
2015-04-02Fixed DNS resolution bug in WindowsThomas Winget2-5/+2
Due to a bug in unbound, we were passing a string containing a null character to ub_ctx_resolvconf and ub_ctx_hosts rather than a NULL pointer. On *nix this wasn't causing headache, but on Windows this was causing unbound to not correctly load DNS settings from the OS. Note on the bug: in a Windows-specific code branch in the function ub_ctx_hosts(), if the hosts file specified was a NULL pointer, a call to getenv() was stored in a local char* and later freed. This is incorrect, as we do not own that data, and caused the program to crash.
2015-04-02Utils: use const, document dbg. Less default debugrfree2monero2-30/+55
2015-04-02update hardcoded fallback seedsRiccardo Spagni1-12/+25
2015-04-02update unbound from upstreamRiccardo Spagni155-3514/+5556
2015-04-01[fix] mac os x includes std::random...rfree2monero1-0/+4
2015-04-01Network 1.6: network limits, logging, +doxyrfree2monero1-1/+7
-dr.monero and once more again merged all work to current official monero version
2015-04-01my changelogrfree2monero1-0/+71
2015-04-01doxygen filesrfree2monero2-0/+1817
2015-04-01doxygen related toolrfree2monero1-0/+25
2015-04-01added windows_stream.* console colorsrfree2monero2-0/+84
2015-04-01remerged; commands JSON. logging upgrade. doxygenrfree2monero29-243/+702
2015-04-01Merge remote-tracking branch 'monero-official/master' into network-1.6-work1rfree2monero98-2467/+9502
2015-03-30Merge pull request #248Riccardo Spagni16-162/+512
a0590d2 Restore daemon interactive mode (Thomas Winget)
2015-03-29Merge upstream into blockchainThomas Winget7-28/+142
2015-03-29Merge BerkeleyDB blockchain db implementationThomas Winget19-102/+2250
2015-03-27Restore daemon interactive modeThomas Winget16-162/+512
Daemon interactive mode is now working again. RPC mapped calls in daemon and wallet have both had connection_context removed as an argument as that argument was not being used anywhere.
2015-03-26Merge pull request #247Riccardo Spagni1-1/+1
c9424c1 fix cmake miniupnpc typo (meshpoint)
2015-03-26Merge pull request #244Riccardo Spagni3-12/+117
e6740ee Enforce DNSSEC for checkpoint updates (Thomas Winget) dbf46a7 DNSSEC added (hardcoded key) (Thomas Winget)
2015-03-26Merge pull request #242Riccardo Spagni2-5/+8
b43716c Do store transaction's blob size in transaction_chain_entry (Sergey Kazenyuk) 3be518f Use single get_transaction_hash to get both id and blob size (Sergey Kazenyuk)
2015-03-26Merge pull request #239Riccardo Spagni1-10/+16
02969d6 default mix factor in simplewallet (smooth)
2015-03-26fix cmake miniupnpc typomeshpoint1-1/+1
which matters on case-sensitive filesystems
2015-03-25Steps toward multiple dbs available -- workingThomas Winget13-58/+146
There will need to be some more refactoring for these changes to be considered complete/correct, but for now it's working. new daemon cli argument "--db-type", works for LMDB and BerkeleyDB. A good deal of refactoring is also present in this commit, namely Blockchain no longer instantiates BlockchainDB, but rather is passed a pointer to an already-instantiated BlockchainDB on init().
2015-03-25update berkeleydb branch to blockchain branchThomas Winget100-2375/+9070
2015-03-25Merge upstream updates into blockchain branchThomas Winget94-2326/+8929
2015-03-25Merges #36Thomas Winget6-49/+141
2015-03-24Enforce DNSSEC for checkpoint updatesThomas Winget1-10/+17
2015-03-24DNSSEC added (hardcoded key)Thomas Winget2-2/+100
DNSSEC is now implemented with the hardcoded key from unbound. This will need to be not hardcoded in the future, but is okay for now. Unit tests updated for DNSSEC (as well as for the fact that, contrary to previous assumption, example.com does not have a static IP address).
2015-03-24Merge pull request #243Riccardo Spagni49-395/+3970
51e3579 Fixed bug in static linking boost on MINGW (Thomas Winget) f78bb00 Hopefully fixes build on Windows for real this time (Thomas Winget) 2b0583b Hopefully fixes build on Windows (Thomas Winget) 9dab105 DNS checkpoint loading for testnet should now be correct (Thomas Winget) 52f9629 sending commands to forked daemon works on testnet now (Thomas Winget) 76289d0 Fix tests building -- function signatures changed (Thomas Winget) db53e19 revert stop_daemon method to use correct exit (Thomas Winget) 96cbecf RPC calls for background daemon added in (Thomas Winget) 9193d6f Daemonize changes pulled in -- daemon builds (Thomas Winget)
2015-03-24updated gtest to latestRiccardo Spagni37-1919/+4932
2015-03-24Merge upstream to daemonize changesThomas Winget10-12/+27
Preparation for PR
2015-03-23blockchain_converter: Add support for resume from last blockwarptangent1-10/+37
Add option "--resume <on|off>" where default is on.
2015-03-22blockchain_import: lengthen string for line clearwarptangent1-16/+19
2015-03-22blockchain_export: show progress during exportwarptangent1-9/+17
2015-03-22Update Blockchain::get_db() to return reference instead of pointerwarptangent4-14/+14
Where this method is used, a BlockchainDB object is always expected, so a pointer is unnecessary and less safe.
2015-03-22Add README for blockchain converter, importer, and exporter utilitieswarptangent1-0/+54
2015-03-22Fixed bug in static linking boost on MINGWThomas Winget1-0/+6
There was a workaround for linking to boost at all on MINGW, but unfortunately this workaround would not correctly link to boost statically. This workaround for that workaround works around the issue that that workaround had.
2015-03-20Hopefully fixes build on Windows for real this timeThomas Winget1-5/+5
2015-03-20Hopefully fixes build on WindowsThomas Winget3-3/+15
2015-03-17BerkeleyDB implementation of BlockchainDB seems to be working!Thomas Winget2-20/+20
2015-03-17Pull blockchain changes into berkeleydb branchThomas Winget72-107/+17743
2015-03-17Merges PR #35Thomas Winget12-38/+1659
2015-03-17Merges #33Thomas Winget0-0/+0
Because of some github fuckery I had to manually cherry-pick/rebase fluffypony's 32- and 64-bit lmdb changes, hence this isn't actually a merge commit.
2015-03-17Move db_drivers/ to external/Thomas Winget59-5/+4
Also change LMDB Cmake variables to CACHE rather than upgrading them through several parent scopes.
2015-03-17fixed BUILD_64 optionRiccardo Spagni1-1/+1
2015-03-17fixed arch_width optionRiccardo Spagni1-3/+9
2015-03-17fixed msys2 / mingw folders based on architecture, added license to unbound ↵Riccardo Spagni2-8/+36
CMakeList as that is not part of standard Unbound
2015-03-17moved 32-bit/64-bit detection into main CMakeListsRiccardo Spagni58-9/+12
2015-03-17removed findlmdb.cmake, no longer requiredRiccardo Spagni1-57/+0
2015-03-1732-bit LMDB, removed check for in-system LMDB as it is consensus-criticalRiccardo Spagni29-17/+16061
2015-03-17Revert "Moved db_drivers/ into external/ for consistency"Thomas Winget31-2/+3
This reverts commit b21335642e75b35d3b178a754f4cdb2314989cd1.
2015-03-17Revert "Build fixed, goofed up some CMake"Thomas Winget1-4/+0
This reverts commit 8b82f3c57ffdc4dc190f4755c61d74d8359c8c0f.
2015-03-17BlockchainBDB passes unit testsThomas Winget1-1/+4
2015-03-16blockchain_export: Add compile-time support for BlockchainDBwarptangent2-31/+63
This allows an LMDB database to be used as the blockchain to export. Adjust SOURCE_DB in src/blockchain_converter/blockchain_export.h depending on needs. Defaults to DB_MEMORY. DB_MEMORY is a sensible default for users migrating to LMDB, as it allows the exporter to use the in-memory blockchain while the other binaries work with LMDB, without recompiling anything.
2015-03-16BerkeleyDB Blockchain building, not working yetThomas Winget6-199/+253
Everything except actually *using* BlockchainBDB is wired up, but the db itself is not yet working. Some error about user mem not large enough. I think I know what this error means, but I can't determine the cause. Notes: BerkeleyDB does not allow 0-indexing in its recno type databases, so block numbers *in the database* will be 1-indexed. Modifications to indexing have been made as needed.
2015-03-16CMake wiring, minor cleanup, minor test additionThomas Winget6-2/+37
Make Cmake things aware of BerkeleyDB and BlockchainBDB Make the BlockchainDB unit tests aware of BlockchainBDB
2015-03-16BerkeleyDB BlockchainDB impl copy/paste/modifyThomas Winget2-9/+1304
LMDB implementation code copy/paste/modified into the Berkeley DB implementation. Need to test if it builds, then if it works, and so on, but the code is all there.
2015-03-16Try to not pollute cryptonote namespaceThomas Winget2-47/+47
2015-03-16Initial commit of BDB BlockchainDB implementationThomas Winget2-0/+678
Basically verbatim copy of LMDB implementation, but with the guts ripped out and includes changed, etc.
2015-03-16Add blockchain_export utilitywarptangent3-0/+470
Based on work by tomerkon. See https://github.com/tomerkon/bitmonero src/cryptonote_core/bootfilesaver.{h,cpp} src/bootfilegen/bootfilegen.cpp
2015-03-16Add support for database open with flagswarptangent7-14/+77
Add support to: - BlockchainDB, BlockchainLMDB - blockchain_import utility to open LMDB database with one or more LMDB flags. Sample use: $ blockchain_import --database lmdb#nosync $ blockchain_import --database lmdb#nosync,nometasync
2015-03-16Add mdb_flags variable to LMDB database openwarptangent1-1/+2
2015-03-16Add blockchain_import utilitywarptangent4-0/+894
This imports to the blockchain database from an exported blockchain file. It can be used to bootstrap a new database or to add blocks to an existing one. Supports: - both the in-memory and LMDB implementations - optional: batching, verification, testnet See help for usage. Based on work by tomerkon. See https://github.com/tomerkon src/cryptonote_core/bootfileloader.{h,cpp}
2015-03-15Blockchain: add get_db() accessor, needed for blockchain_importwarptangent1-0/+5
This handling may be changed in the future.
2015-03-15blockchain_converter: Add support for batch transactionswarptangent1-23/+173
Add log level support. Add testnet support. Add command-line options: --help --data-dir --testnet-data-dir --testnet --log-level --batch --batch-size --block-number See help for usage. Run at log level 1 to see profiling stats.
2015-03-15Update and relocate comment that applies class widewarptangent1-8/+14
2015-03-15Do store transaction's blob size in transaction_chain_entrySergey Kazenyuk2-4/+5
2015-03-15Use single get_transaction_hash to get both id and blob sizeSergey Kazenyuk1-2/+4
2015-03-13BlockchainDB implementations have names nowThomas Winget5-3/+20
In order to make things more general, BlockchainDB now has get_db_name() which should return a string with the "name" of that type of db. This "name" will be the subfolder name that holds that db type's files within the monero folder. Small bugfix: blockchain_converter was not correctly appending this in the prior hard-coded-string implementation of the subfolder data directory concept.
2015-03-10Fixed includes in BlockchainDB unit testsThomas Winget1-2/+2
2015-03-10Build fixed, goofed up some CMakeThomas Winget1-0/+4
Forgot that CMake vars set to PARENT_SCOPE will still vanish if that parent scope goes...out of scope. LMDB vars elevated one more scope to compensate for moving db_drivers/ into external/
2015-03-10default mix factor in simplewalletsmooth1-10/+16
2015-03-10Merge pull request #238Riccardo Spagni1-0/+1
7e72e94 update checkpoint (smooth)
2015-03-09Moved db_drivers/ into external/ for consistencyThomas Winget31-3/+2
2015-03-06Moved BlockchainDB into its own src/ subfolderThomas Winget12-13/+72
Ostensibly janitorial work, but should be more relevant later down the line. Things that depend on core cryptonote things (i.e. cryptonote_core) don't necessarily depend on BlockchainDB and thus have no need to have BlockchainDB baked in with them.
2015-03-06update checkpointsmooth1-0/+1
2015-03-05Merge pull request #237Riccardo Spagni3-4/+13
41a95e7 add comment about avoiding overflow (smooth) 754a785 minimum subsidy for mining incentives, remove unused LEGACY_FEE define (smooth)
2015-03-05add comment about avoiding overflowsmooth1-0/+6
2015-03-04minimum subsidy for mining incentives, remove unused LEGACY_FEE definesmooth3-4/+7
2015-03-04fixed English word list issue: 'launchpad' should be 'ourselves'Riccardo Spagni1-1/+1
2015-03-04fixed English word list issue: 'incline' should have remained 'inline'Riccardo Spagni1-1/+1
2015-03-01DNS checkpoint loading for testnet should now be correctThomas Winget4-4/+19
2015-03-01sending commands to forked daemon works on testnet nowThomas Winget1-0/+4
2015-03-01Fix tests building -- function signatures changedThomas Winget4-3/+7
2015-03-01markdown formatting fixRiccardo Spagni1-1/+1
2015-02-28Merge pull request #234Riccardo Spagni3-6/+7
7590f33 move website and DNS unit tests from monero.cc to getmonero.org (Riccardo Spagni)
2015-02-28move website and DNS unit tests from monero.cc to getmonero.orgRiccardo Spagni3-6/+7
2015-02-24fix locking in count-peers thread (2)rfree2monero4-12/+28
2015-02-242014 network limit 1.3 fix log/path/data +utilsrfree2monero19-110/+306
+toc -doc -drmonero Fixed the windows path, and improved logging and data (for graph) logging, fixed some locks and added more checks. Still there is a locking error, not added by my patches, but present in master version (locking of map/list of peers).
2015-02-24revert stop_daemon method to use correct exitThomas Winget1-1/+1
This was changed because sometimes the daemon does not complete its exit routine with this method, but as it does correctly wind most things down even if it gets stuck I've changed it back.
2015-02-24RPC calls for background daemon added inThomas Winget8-52/+301
The RPC calls the daemon executable uses to talk to the running daemon instance have mostly been added back in. Rate limiting has not been added in upstream, but is on its way in a separate effort, so those calls are still NOPed out.
2015-02-24Daemonize changes pulled in -- daemon buildsThomas Winget39-386/+3671
many RPC functions added by the daemonize changes (and related changes on the upstream dev branch that were not merged) were commented out (apart from return). Other than that, this *should* work...at any rate, it builds, and that's something.
2015-02-23Changed log level of debug message -- too spammyThomas Winget1-1/+1
2015-02-23Merge #32Thomas Winget7-95/+442
Add support to BlockchainDB and BlockchainLMDB for batch transactions. Add profiling to block and tx processing and DB operations. Improve block and tx processing efficiency by less repeat hashing. Move LMDB storage to "lmdb" subfolder. - Upon startup, if old LMDB files are detected, abort with a message for the user to move them to subfolder or delete them. Update and fix log statements and formatting.
2015-02-23BlockchainLMDB: Add profiling to tx_exists()warptangent3-1/+8
2015-02-23BlockchainLMDB: Add batch transaction support to tx_exists()warptangent1-6/+9
2015-02-23BlockchainDB, BlockchainLMDB: Add profiling for DB commitswarptangent3-0/+18
2015-02-23BlockchainDB: Add virtual function declarations for batch transactionswarptangent1-0/+3
2015-02-23BlockchainLMDB: Add check for open database to two functionswarptangent1-0/+3
2015-02-23BlockchainLMDB: Add support for batch transactionswarptangent2-55/+289
2015-02-23Improve block and tx processing efficiency by less repeat hashingwarptangent4-11/+28
BlockchainLMDB::add_block() BlockchainLMDB::add_transaction_data() BlockchainDB::add_transaction()
2015-02-23Add profiling to block and tx processingwarptangent2-0/+48
2015-02-23Move LMDB storage to subfolderwarptangent2-1/+12
2015-02-23Fix formattingwarptangent1-6/+5
2015-02-23Fix log statementwarptangent1-1/+1
2015-02-23Remove unused variablewarptangent1-1/+0
2015-02-23Add log statementwarptangent1-0/+1
2015-02-23Add and extend log statementswarptangent1-6/+10
2015-02-23Blockchain: match original function declaration from blockchain_storagewarptangent2-2/+2
2015-02-23Update year and formatting in licensewarptangent1-7/+7
2015-02-22Merge pull request #31 from warptangent/fix/fix_get_tail_idThomas Winget2-2/+2
Fix Blockchain::get_tail_id() to set parameter to last block number instead of height
2015-02-22Fix Blockchain::get_tail_id() to set parameter to last block number instead ↵warptangent1-1/+1
of height This reflects the behavior of blockchain_storage::get_tail_id(). Fixes #27 so that RPC method getlastblockheader works.
2015-02-22Revert "Bounds error, should fix #27"warptangent1-1/+1
This reverts commit 6f1c4b4c2c78c930fe30ed648e855a6ce55f7dcd.
2015-02-20Bounds error, should fix #27Thomas Winget1-1/+1
2015-02-202014 network limit 1.2 +utils +toc -doc -drmonerorfree2monero23-184/+257
new update of the pr with network limits more debug options: discarding downloaded blocks all or after given height. trying to trigger the locking errors. debug levels polished/tuned to sane values. debug/logging improved. warning: this pr should be correct code, but it could make an existing (in master version) locking error appear more often. it's a race on the list (map) of peers, e.g. between closing/deleting them versus working on them in net-limit sleep in sending chunk. the bug is not in this code/this pr, but in the master version. the locking problem of master will be fixed in other pr. problem is ub, and in practice is seems to usually cause program abort (tested on debian stable with updated gcc). see --help for option to add sleep to trigger the error faster.
2015-02-20fixed size_t on windowsrfree2monero1-2/+8
thought it was already fixed, apparently commit got lost somewhere
2015-02-20removed not needed <netinet/in.h>rfree2monero1-1/+0
2015-02-202014 network limit 1.1 +utils +toc -doc -drmonerorfree2monero30-383/+714
Update of the PR with network limits works very well for all speeds (but remember that low download speed can stop upload because we then slow down downloading of blockchain requests too) more debug options fixed pedantic warnings in our code should work again on Mac OS X and FreeBSD fixed warning about size_t tested on Debian, Ubuntu, Windows(testing now) TCP options and ToS (QoS) flag FIXED peer number limit FIXED some spikes in ingress/download FIXED problems when other up and down limit
2015-02-202014 network limit 1.0a +utils +toc -doc -drmonerorfree2monero40-210/+4020
commands and options for network limiting works very well e.g. for 50 KiB/sec up and down ToS (QoS) flag peer number limit TODO some spikes in ingress/download TODO problems when other up and down limit added "otshell utils" - simple logging (with colors, text files channels)
2015-02-20Merge pull request #229Riccardo Spagni2-0/+4
7b01a07 added tx size to incoming_transfers RPC Call (Riccardo Spagni)
2015-02-20added tx size to incoming_transfers RPC CallRiccardo Spagni2-0/+4
2015-02-05Merge remote-tracking branch 'monero-project/master' into blockchainThomas Winget3-4/+62
2015-02-03Merge pull request #221Riccardo Spagni2-4/+46
3ece158 make fallback compatible with newer slow-hash (Riccardo Spagni) 709bbc5 replaced 64-bit multiplication in difficulty.cpp with a portable version (Riccardo Spagni) 497a514 replaced 64-bit multiplication in difficulty.cpp with a portable version (Riccardo Spagni)
2015-02-03changed MM logoRiccardo Spagni1-1/+1
2015-02-03added donation and sponsor info to readmeRiccardo Spagni1-0/+16
2015-02-03Merge PR #26Thomas Winget9-4/+77
Usage: default is lmdb for blockchain branch: $ make release same as: $ DATABASE=lmdb make release for original in-memory implementation: $ DATABASE=memory make release COMMITS: - Add compile-time support for both db implementations: in-memory and LMDB NOTE: The default should be changed to lmdb when this is merged upstream unless we're 100% sure the LMDB implementation is ready.
2015-02-02Add compile-time support for both db implementations: in-memory and LMDBwarptangent9-4/+77
Usage: default is lmdb for blockchain branch: $ make release same as: $ DATABASE=lmdb make release for original in-memory implementation: $ DATABASE=memory make release
2015-02-02Merge PR 25 into blockchainThomas Winget1-50/+57
2015-02-01Blockchain: reflect log updates from blockchain_storagewarptangent1-7/+7
See commit 4ba680f2946966df2030e5765e40ee0a36b112c4
2015-02-01Blockchain: reflect log and assert updates from blockchain_storagewarptangent1-37/+38
See commit cf5a8b1d6c3df615641e81328bb3d8cf80cd70e3
2015-02-01Blockchain: reflect log level of blockchain_storagewarptangent1-8/+8
Update to match LOG_PRINT_RED_Lx statements. See commit cf5a8b1d6c3df615641e81328bb3d8cf80cd70e3
2015-02-01Blockchain: reflect assert behavior of blockchain_storage for ↵warptangent1-0/+2
get_tx_outputs_gindexs()
2015-02-01Update recently added log statement to fix possible null dereferencewarptangent1-1/+5
This would have been triggered if function was called without fourth parameter and ring signature check failed.
2015-02-01Merge remote-tracking branch 'origin/pr/24' into blockchainThomas Winget4-16/+179
2015-01-30Merge upstreamwarptangent4-16/+179
Merge branch 'monero-project/master' into blockchain
2015-01-28make fallback compatible with newer slow-hashRiccardo Spagni1-0/+12
2015-01-27Merge branch 'master' of https://github.com/fluffypony/bitmoneroRiccardo Spagni0-0/+0
2015-01-27replaced 64-bit multiplication in difficulty.cpp with a portable versionRiccardo Spagni1-4/+34
2015-01-27replaced 64-bit multiplication in difficulty.cpp with a portable versionRiccardo Spagni1-4/+34
2015-01-27Merge pull request #220Riccardo Spagni3-16/+166
9b3673a added portable slow-hash, updated makefile targets, fixed readme (Riccardo Spagni)
2015-01-27added portable slow-hash, updated makefile targets, fixed readmeRiccardo Spagni3-16/+166
2015-01-27Merge pull request #219Riccardo Spagni1-2/+2
e70bc3d fixed sse2 ifdef (Riccardo Spagni)
2015-01-27fixed sse2 ifdefRiccardo Spagni1-2/+2
2015-01-27Merge pull request #218Riccardo Spagni2-2/+4
2b3b70a remove aes flag, detect no sse2 (Riccardo Spagni)
2015-01-27remove aes flag, detect no sse2Riccardo Spagni2-2/+4
2015-01-27fixed AES support flagRiccardo Spagni1-4/+4
2015-01-26allow for explicitly disabling AES-NIRiccardo Spagni1-2/+13
2015-01-21Merge to keep up with upstreamThomas Winget10-25/+208
Merge 'monero-project/master' with blockchain
2015-01-19Should fix std::min issues related to size_tThomas Winget1-2/+2
2015-01-18Add in-source lmdb to build processThomas Winget4-5/+92
Working on Linux, needs verified for other platforms but should be fine.
2015-01-18Initial import of lmdb sourceThomas Winget27-0/+16131
2015-01-15Merge pull request #215Riccardo Spagni4-2/+36
24d500c Add a --restricted-rpc flag to simplewallet (moneromooo-monero)
2015-01-15Merge pull request #214Riccardo Spagni3-12/+45
87839cd Allow get_bulk_payments to return all payments regardless of payment ID (moneromooo-monero)
2015-01-14Merge #216Thomas Winget1-28/+41
Fix seed node threaded DNS lookup
2015-01-14Merge #22Thomas Winget2-26/+0
Remove code previously made unused and marked unused
2015-01-14Fix seed node threaded DNS lookupwarptangent1-28/+41
Use copied value of seed node index during thread creation, not reference. - fixes segfault Use boost::thread::try_join_until() instead of an atomic flag result variable for each thread. Add and handle interrupt for thread timeout. - fixes segfault where a thread exceeds requested timeout and tries to assign results to a referenced, but now out-of-scope, variable in the main thread.
2015-01-14Remove code previously made unused and marked unusedwarptangent2-26/+0
2015-01-12Merge pull request #21 from warptangent/fix_block_reorgThomas Winget5-35/+137
Fixes and additions for block reorganization
2015-01-11Fix height assertion in Blockchain::handle_alternative_block()warptangent1-1/+1
It expects the total number of blocks of main chain, not last block id (off-by-one error). This again behaves like the same height assertion done in original implementation in blockchain_storage::handle_alternative_block(). This allows a reorganization to proceed after an alternative block has been added.
2015-01-11Fix comparison between main and alternate chain's cumulativewarptangent1-2/+10
difficulty. This fixes the continual reorganization between a main and alternate chain, using the same two latest blocks from each. The check that cumulative difficulty of the alternate chain is bigger than main's was not using main's last block, but incorrectly using the passed-in block's previous block. main_chain_cumulative_difficulty was being used in two different ways. This has been split up to keep use of main_chain_cumulative_difficulty consistent.
2015-01-11Remove a have_block() check so alternate block can be processedwarptangent1-7/+27
Remove have_block() check from Blockchain::handle_block_to_main_chain(). Add logging to have_block(). This allows blockchain reorganization to proceed further. have_block() check here causes an error after a blockchain reorganize begins with error: "Attempting to add block to main chain, but it's already either there or in an alternate chain." While reorganizing to become the main chain, a block in the alternative chain would be refused due to have_block() rightfully finding it in the alternative chain. The reorganization would end in rollback, restoring to previous blockchain. Original implementation didn't call it here, and it doesn't appear necessary to be called from here in this implementation either. When needed, it appears it's called prior to handle_block_to_main_chain().
2015-01-11Complete implementation of transaction removalwarptangent4-23/+97
Complete method BlockchainLMDB::remove_output() - use output index as the key for: m_output_indices, m_output_txs, m_output_keys - call new method BlockchainLMDB::remove_amount_output_index() Add method to remove amount output index. - BlockchainLMDB::remove_amount_output_index() - for m_output_amounts This also fixes the segfault when blockchain reorganization is attempted.
2015-01-11Use block index when obtaining block's difficulty for log statementwarptangent1-2/+2
Use last block id, not number of blocks (off-by-one error). Fixes error at start of blockchain reorganization: "Attempt to get cumulative difficulty from height <XXXXXX> failed -- difficulty not in db"
2015-01-11added monoermooo's gpg keyRiccardo Spagni1-0/+52
2015-01-11Add a --restricted-rpc flag to simplewalletmoneromooo-monero4-2/+36
It restricts RPC to a subset of "view only" commands. Kind of like a poor man's view key replacement.
2015-01-11Allow get_bulk_payments to return all payments regardless of payment IDmoneromooo-monero3-12/+45
by giving an empty list of payment IDs.
2015-01-09Merge pull request #20 from warptangent/fix_transfersThomas Winget4-4/+127
Fix transfers Output indexing was being handled improperly. These changes fix that. Wallets (re-)created using this branch will need to be (re-)re-created in order to get correct output indices.
2015-01-09Fix transfers to support mixinswarptangent2-3/+42
Implement BlockchainLMDB::get_output_global_index() - returns global output index for a given amount and amount output index. Add information to debug statement for failed ring signature check within Blockchain::check_tx_inputs() Fixes bitmonerod RPC call "/getrandom_outs.bin" to return correct output keys, used in creating a transaction with mixins. TODO: get_output_global_index() could be refactored with part of get_output_tx_and_index() as the latter uses the former's functionality. Keep track of LMDB read transaction.
2015-01-09Fix transfers (without mixins)warptangent4-1/+85
Fix Blockchain::get_tx_outputs_gindexs() to return amount output indices. Implement BlockchainLMDB::get_tx_amount_output_indices() and call it from the function instead of BlockchainLMDB::get_tx_output_indices() Previously, Blockchain::get_tx_outputs_gindexs() was instead returning global output indices, which are internal to LMDB databases. Allows bitmonerod RPC /get_o_indexes.bin to return the amount output indices as expected. Allows simplewallet refresh to set correct amount output indices for incoming transfers. simplewallet can now construct and send valid transactions (currently only without mixins). This is a fix that doesn't require altering the structure of the current LMDB databases. TODO: This can be done more efficiently by adding another LMDB database (key-value table). It's not used during regular transaction validation by bitmonerod. I think it's currently used only or mainly by simplewallet for just its own incoming transactions. So the current behavior is not a primary bottleneck. Currently, it's using the "output_amounts" database, walking through a given amount's list of values, comparing each one to a given global output index. The iteration number of the match is the desired result: the amount output index. This is done for each global output index of the transaction. A tx's amount output indices can be stored in various other ways allowing for faster lookup. Since a tx is only written once, there are no special future write requirements for its list of indices.
2015-01-09throw inline functions need to keep exception typeThomas Winget1-3/+5
As it is useful for functions calling BlockchainDB functions to know whether an exception is expected (attempting to get a block that doesn't exist and counting it missing if not, to save time checking if it does, for example), the inline functions throw{0,1} need to keep the exception type information. Slight comment update due to copy/paste failure.
2015-01-09Fixes segfault in Blockchain::handle_alternative_blockThomas Winget2-6/+12
This commit should fix the segfault in Blockchain::handle_alternative_block, and also updates a few comments that were either incorrect or incomplete.