aboutsummaryrefslogtreecommitdiff
path: root/src (follow)
AgeCommit message (Collapse)AuthorFilesLines
2015-05-05Merge pull request #268Riccardo Spagni3-8/+72
2717883 DNS Checkpoint updating-related fixes/changes (Thomas Winget)
2015-04-22DNS Checkpoint updating-related fixes/changesThomas Winget3-8/+72
Only one thread will be doing the updating. Two valid responses must match, and the first two that match will be used.
2015-04-13disable non-working optimized slow_hash on 32 bit intelJavier Smooth1-1/+1
2015-04-10[fix] log level change. compilation: dns, testsrfree2monero4-3/+6
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-08Disable DNS checkpoint updating on testnetThomas Winget1-0/+2
2015-04-08Merge pull request #256Riccardo Spagni32-149/+9648
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-08[fix] Network 1.8: unlimited the RPC connectionsrfree2monero3-1/+22
works for unit tests build, too
2015-04-07Merge BlockchainDB into upstreamThomas Winget32-149/+9648
2015-04-07Only compile BerkeleyDB as an option in non-staticThomas Winget2-0/+20
2015-04-05no newline at end of fileRiccardo Spagni1-1/+1
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-02Merge pull request #252Riccardo Spagni44-138/+2907
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 Spagni1-4/+2
c0de96f Fixed DNS resolution bug in Windows (Thomas Winget)
2015-04-02Network 1.7; Quieted the debug a bit.rfree2monero2-6/+10
Really really finall version of this changes I hope.
2015-04-02Fixed DNS resolution bug in WindowsThomas Winget1-4/+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-02update hardcoded fallback seedsRiccardo Spagni1-12/+25
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-01remerged; commands JSON. logging upgrade. doxygenrfree2monero25-221/+547
2015-04-01Merge remote-tracking branch 'monero-official/master' into network-1.6-work1rfree2monero52-473/+4456
2015-03-29Merge upstream into blockchainThomas Winget5-25/+107
2015-03-27Restore daemon interactive modeThomas Winget14-153/+501
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 #244Riccardo Spagni2-10/+83
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-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 Winget56-393/+4070
2015-03-25Merge upstream updates into blockchain branchThomas Winget50-344/+3929
2015-03-24Enforce DNSSEC for checkpoint updatesThomas Winget1-10/+17
2015-03-24DNSSEC added (hardcoded key)Thomas Winget1-0/+66
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 upstream to daemonize changesThomas Winget7-6/+20
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-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 Winget12-38/+1659
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 Winget3-189/+200
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 Winget1-0/+3
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-10default mix factor in simplewalletsmooth1-10/+16
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-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 Winget2-0/+3
2015-02-24fix locking in count-peers thread (2)rfree2monero4-12/+28
2015-02-242014 network limit 1.3 fix log/path/data +utilsrfree2monero6-63/+142
+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 Winget38-332/+3620
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-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-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 -drmonerorfree2monero18-158/+175
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-20removed not needed <netinet/in.h>rfree2monero1-1/+0
2015-02-202014 network limit 1.1 +utils +toc -doc -drmonerorfree2monero19-318/+560
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 -drmonerorfree2monero20-76/+2113
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-20added tx size to incoming_transfers RPC CallRiccardo Spagni2-0/+4
2015-02-05Merge remote-tracking branch 'monero-project/master' into blockchainThomas Winget2-4/+46
2015-02-02Add compile-time support for both db implementations: in-memory and LMDBwarptangent8-4/+56
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-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-01-30Merge upstreamwarptangent1-0/+152
Merge branch 'monero-project/master' into blockchain
2015-01-28make fallback compatible with newer slow-hashRiccardo Spagni1-0/+12
2015-01-27replaced 64-bit multiplication in difficulty.cpp with a portable versionRiccardo Spagni1-4/+34
2015-01-27added portable slow-hash, updated makefile targets, fixed readmeRiccardo Spagni1-2/+152
2015-01-27fixed sse2 ifdefRiccardo Spagni1-2/+2
2015-01-27remove aes flag, detect no sse2Riccardo Spagni1-0/+2
2015-01-21Merge to keep up with upstreamThomas Winget9-25/+156
Merge 'monero-project/master' with blockchain
2015-01-19Should fix std::min issues related to size_tThomas Winget1-2/+2
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-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-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-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-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.
2015-01-08Merge pull request #206Riccardo Spagni2-11/+59
1b46226 std::atomic_flag has no copy/move constructor, can't have a vector (Thomas Winget) df53c0a small typo in previous commit (Thomas Winget) 4a53898 DNS seed timeout and fallback (Thomas Winget)
2015-01-06previous hash added to GBTRiccardo Spagni2-0/+3
2015-01-04Merge pull request #19 from warptangent/fix_tx_outputThomas Winget1-1/+1
Obtain tx hash and tx output index from amount and output offset
2015-01-04Obtain tx hash and tx output index from amount and output offsetwarptangent1-1/+1
Fixes problem of obtaining incorrect outputs used for tx input. Reverts to earlier intended behavior that was fixed in previous commit's split of get_output_tx_and_index into two functions.
2015-01-04db_lmdb: fix global index calculation off by 1moneromooo-monero1-1/+1
This finally fixes raw tx being accepted by the daemon.
2015-01-04Fixes a bug with getting output metadata from BlockchainDBThomas Winget4-17/+37
Thanks to moneromooo-monero for spotting the bug.
2015-01-04db_lmdb: remove redundant checksmoneromooo-monero1-10/+4
2015-01-04update comments to reflect changed codeThomas Winget1-4/+1
2015-01-04blockchain_converter: add --testnet for converting testnet blockchainmoneromooo-monero1-1/+6
2015-01-04db_lmdb: do not give the group database write permissionsmoneromooo-monero1-1/+1
2015-01-04db_lmdb: catch attempt to remove block from an empty blockchainmoneromooo-monero1-0/+3
It would probably have thrown when not finding a block at height 2^64-1, but better make things clear.
2015-01-04db_lmdb: factor all the log+throw code pathsmoneromooo-monero1-485/+138
2015-01-04db_lmdb: factor the MDB_val setup codemoneromooo-monero1-197/+74
It makes the code simpler, avoids possible copy/paste errors (wrong sizeof, etc), and generally unclutters the calling code.
2015-01-04blockchain_converter: a bit more user friendly outputmoneromooo-monero1-2/+9
2015-01-04blockchain_converter: only call data path function oncemoneromooo-monero1-5/+4
2015-01-04blockchain: do not append "testnet" to the data directorymoneromooo-monero1-6/+0
It is already there (unless overridden via command line).
2015-01-04db_lmdb: remove block timestamp too when removing a blockmoneromooo-monero1-0/+6
2015-01-04db_lmdb: do not cast const awaymoneromooo-monero1-13/+13
2015-01-04blockchain: fix wallet syncing from scratchmoneromooo-monero1-1/+2
When the wallet syncs from the first block, it is fine to start at the genesis block.
2015-01-04db_lmdb: do not keep a dangling pointer to stack objectsmoneromooo-monero1-0/+4
2015-01-04db_lmdb: make cursor internal members privatemoneromooo-monero1-0/+1
2015-01-04blockchain_storage: refactor genesis block creationmoneromooo-monero2-16/+6
The existing assert is kept as it is stricter than the function's internal assert.
2015-01-04blockchain_storage: add consts where appropriatemoneromooo-monero2-110/+110
2015-01-04blockchain_converter: delete blockchain on succesful exitmoneromooo-monero1-0/+1
While the dtor implementation does not actually do anything, other paths do delete it, and the dtor might do someting later.
2015-01-04checkpoints: add consts where appropriatemoneromooo-monero2-7/+7
2015-01-04blockchain: add consts where appropriatemoneromooo-monero2-84/+84
2015-01-04blockchain_db: add consts where appropriatemoneromooo-monero3-121/+121
2015-01-04blockchain_db: factor some exception codemoneromooo-monero1-148/+48
Ideally, the log would go in the exception's ctor, but two log levels are used, so I'd need to specify the level in the ctor, which isn't great as it's not really related to the exception.
2015-01-04blockchain_converter: use the actual blockchain locationmoneromooo-monero1-3/+5
2015-01-04build: add liblmdb to the cmake autodetection systemmoneromooo-monero1-1/+1
update for rebase (warptangent 2015-01-04) src/cryptonote_core/CMakeLists.txt (edit) - replace LMDB_LIBRARIES with LMDB_LIBRARY set from autodetection
2015-01-04extraneous semicolon in Blockchain::complete_timestamps_vectorThomas Winget1-1/+1
credit here: https://bitcointalk.org/index.php?topic=583449.msg9562845#msg9562845
2015-01-04raised maximum mapsize for lmdb to ~16GBThomas Winget1-1/+1
2015-01-04more blockchain height-related fixes, syncing other nodes code this timeThomas Winget1-4/+4
2015-01-04~ didn't work, need hard path. debug print.Thomas Winget1-3/+5
2015-01-04very, VERY primitive blockchain converterThomas Winget5-14/+171
hard-coded config folder, hard-coded BlockchainDB subclass. Needs finessing, but should be testable this way. update for rebase (warptangent 2015-01-04) fix conflicts with upstream CMakeLists.txt files src/CMakeLists.txt (edit original commit) src/blockchain_converter/CMakeLists.txt (add)
2015-01-04add new checkpointing behavior to Blockchain classThomas Winget2-3/+78
2015-01-04Store output pubkeys separately, bug fixesThomas Winget2-9/+54
2015-01-04Minor bugfixes, redundancy removalThomas Winget3-10/+104
Minor bugfixes in block removal Storing outputs outside their transactions is largely unnecessary, and thus has been removed.
2015-01-04moar bug fixes, removed debug printsThomas Winget2-8/+4
2015-01-04BlockchainLMDB seems to be working*!Thomas Winget3-141/+155
* - Well, mostly. Haven't let it sync too far just yet. Currently trying to figure out the best way to deal with LMDB/mmap virtual memory pages.
2015-01-04some bug fixes, but still needs workThomas Winget3-35/+73
There are quite a few debug prints in this commit that will need removed later, but for posterity (in case someone wants to debug this while I'm away), I left them in. Currently errors when syncing on the first block that has a "real" transaction. Seems to not be able to validate the ring signature, but I can't for the life of me figure out what's going wrong.
2015-01-04Minor bug fixes and debug printsThomas Winget2-6/+122
Blockchain and BlockchainLMDB classes now have a debug print at the beginning of each function at log level 2. These can be removed at any time, but for now are quite useful. Blockchain runs, and adds the genesis block just fine, but for some reason isn't getting new blocks.
2015-01-04minor fixes to Blockchain.cppThomas Winget2-3/+7
2015-01-04Integrate BlockchainDB into cryptonote_coreThomas Winget8-24/+58
Probably needs more looking at -- lot of things were done...in a rushed sort of way. That said, it all builds and *should* be at least testable. update for rebase (warptangent 2015-01-04) fix conflicts with upstream CMakeLists.txt files src/CMakeLists.txt (remove edits from original commit) tests/CMakeLists.txt (remove edits from original commit) src/cryptonote_core/CMakeLists.txt (edit) - use blockchain db .cpp and .h files - add LMDB_LIBRARIES
2015-01-04All LMDB BlockchainDB implemented, not testedThomas Winget2-135/+900
All of the functionality for the LMDB implementation of BlockchainDB is implemented, but only what is in tests/unit_tests/BlockchainDB.cpp has been tested. This is basically add a block, see if you can get the block and a tx from the block. More tests should be added at some point.
2015-01-04LMDB blockchain: remove outputs and spent keysThomas Winget1-0/+63
2015-01-04Adding block data to LMDB BlockchainDB codedThomas Winget3-8/+258
Still needs testing (and need to write a few more unit tests), but everything should be there. Lots of unfortunate duplication, but...well, I can't see a way around it using LMDB. A couple of other minor changes in this commit, only slightly relevant.
2015-01-04Parts of LMDB impl of BlockchainDB done and workingThomas Winget4-69/+431
The rest should just be tedious copypasta and modification.
2015-01-04Initial commit of lmdb BlockchainDB implThomas Winget2-0/+472
2015-01-04Initial commit of BlockchainDB tests, other miscThomas Winget2-6/+25
miscellaneous changes to BlockchainDB/blockchain as well, namely replacing instances of std::list with std::vector
2015-01-04update new blockchain to build with new changesThomas Winget2-13/+34
Still need to add in the new checkpointing functionality, as well as touch up a few things, but is okay for now.
2015-01-04stupid past me, fixing typos and shit...Thomas Winget1-21/+21
2015-01-04missing typedefThomas Winget1-0/+3
2015-01-04import of BlockchainDB filesThomas Winget4-0/+3003
tried rebasing, tree-filter, and many other things. at this point, the history of these files previous to this can live on in my bc2 branch, as I'm importing them as-is to here.
2015-01-02year updated in licenseRiccardo Spagni137-139/+139
2014-12-15std::atomic_flag has no copy/move constructor, can't have a vectorThomas Winget1-9/+7
2014-12-15small typo in previous commitThomas Winget1-1/+1
2014-12-15DNS seed timeout and fallbackThomas Winget2-11/+61
2014-12-13Merge pull request #203Riccardo Spagni3-4/+41
583cf0a Document existing function (warptangent) 95eb944 Repeat prompt for wallet path if invalid (warptangent)
2014-12-13Merge pull request #202Riccardo Spagni1-2/+0
d7aafd5 wallet2::rewrite update to not require bin file (warptangent)
2014-12-13Merge pull request #201Riccardo Spagni1-7/+9
9b7e0a0 wallet2::load correctly initialize m_blockchain for wallet loaded without bin file (warptangent)
2014-12-13Merge pull request #200Riccardo Spagni4-0/+125
cfc8c55 Add simple_wallet::seed_set_language method (warptangent) 26b87df Add wallet2::verify_password method (warptangent)
2014-12-13onwards to 0.8.8.7Riccardo Spagni1-1/+1
Signed-off-by: Riccardo Spagni <ric@spagni.net>
2014-12-11Document existing functionwarptangent1-0/+6
2014-12-11Repeat prompt for wallet path if invalidwarptangent3-4/+35
simplewallet run without a wallet path argument should prompt again if an invalid path was entered. Validity here currently means the string isn't empty.
2014-12-10wallet2::rewrite update to not require bin filewarptangent1-2/+0
Allow pre-JSON wallet format to load without depending on existing bin file. Don't write bin file while inside keys rewrite, so bin file write behavior here matches that of regular wallet load.
2014-12-10wallet2::load correctly initialize m_blockchain for wallet loaded without ↵warptangent1-7/+9
bin file Fix for simplewallet loading a wallet with a keys file but no bin file. - this situation previously required a user to restart simplewallet before it would refresh its blockchain from the server.
2014-12-08Add simple_wallet::seed_set_language methodwarptangent2-0/+72
Add simple_wallet::set_variable method to provide top-level "set" command and support "set seed language" command.
2014-12-08Add wallet2::verify_password methodwarptangent2-0/+53
Allows wallet password to be verified without changing wallet state.
2014-12-08version bump to 0.8.8.6v0.8.8.6Riccardo Spagni1-1/+1