Commit graph

732 commits

Author SHA1 Message Date
Daniel Larimer
b65763fdb6 added extra code to track a reverse index on whitelist/blacklist 2015-09-28 15:42:38 -04:00
Daniel Larimer
246459af3f removing print statement 2015-09-28 12:18:58 -04:00
theoreticalbts
a415dd6604 Don't use annotated_object #246 2015-09-28 12:15:17 -04:00
theoreticalbts
2cf80cd04a Remove vestigial meta objects #246 2015-09-28 12:15:17 -04:00
theoreticalbts
91af21d50c db_management.cpp: Properly clear_pending in close(), fix #336 2015-09-28 12:15:17 -04:00
theoreticalbts
8d52e2dda8 database: Scrub db in open() to force reindex if DB is outdated 2015-09-28 12:15:17 -04:00
theoreticalbts
8b98b6200b db_update.cpp: Fix compiler warning 2015-09-28 12:15:17 -04:00
theoreticalbts
0d7baa2b52 database: Remove obsolete retry_on_failure parameter 2015-09-28 12:15:17 -04:00
theoreticalbts
f972cff9d7 Clean up uninitialized integers 2015-09-28 12:15:17 -04:00
theoreticalbts
4c619414ae db_block.cpp: Add some comments 2015-09-28 12:15:17 -04:00
theoreticalbts
35acfff060 database: Implement before_last_checkpoint() function 2015-09-28 12:15:17 -04:00
theoreticalbts
1fb327f6a0 object_id.hpp: Add is<T>() and as<T>() template functions to object_id_type 2015-09-28 12:15:17 -04:00
Eric Frias
d01fc0ac44 Allow delayed-node plugin options to be set on conmmand line (in
addition to in config file) like most other plugins
2015-09-24 12:04:44 -04:00
Daniel Larimer
a3082897ae HARDFORK: fix address authority
Accounts that use address_auths rather than key_auths would fail to
recognize a properly signed transaction.  This is only relevant to
genesis accounts for imported collateral positions.
2015-09-24 10:10:36 -04:00
Daniel Larimer
738abf03af adding API call to get potential address sigs: Fix #337 2015-09-23 18:22:38 -04:00
Daniel Larimer
2afe62f8ab Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-23 16:23:06 -04:00
Daniel Larimer
675f637090 update fc ntp requirments 2015-09-23 16:23:05 -04:00
Eric Frias
405a9e71b2 When the p2p code pushes a transaction that fails to apply, remember that transaction so we don't fetch it again as soon as a different peer tells us about it. 2015-09-22 17:13:35 -04:00
Eric Frias
d92736617e Improve logging of exceptions in p2p code (log via reflection instead of converting to strings) 2015-09-22 17:13:35 -04:00
Daniel Larimer
0ba1154e6e comment out logging spam 2015-09-22 16:50:45 -04:00
theoreticalbts
4a7e133456 Fix price feed publishing for assets owned by witness account #328 2015-09-21 17:36:36 -04:00
Eric Frias
5bfbe0df86 When a we're in normal (in-sync) mode and we get a block that doesn't link to the chain, restart sync with that peer to try to get the missing block 2015-09-21 16:15:51 -04:00
Eric Frias
9536350a50 Reduce the amount of time we'll wait for a peer to provide a requested block to
one second (down from one full block interval), to reduce the chance of us getting
blocks out of order.
Remove the variable we use to keep track of the last block number a peer has;
This was an optimization in BitShares 0.x where looking up the number was expensive,
and maintaining it is error-prone.
2015-09-21 11:48:58 -04:00
theoreticalbts
f8bb0b4008 Fix debug mode build 2015-09-21 11:01:11 -04:00
theoreticalbts
a2b6f1a741 Change assert to elog #334 2015-09-21 11:01:11 -04:00
theoreticalbts
44f5bac305 api: Fix get_config API call #333 2015-09-21 11:01:10 -04:00
Daniel Larimer
a5c1bc7faf Merge branch 'master' of https://github.com/cryptonomex/graphene 2015-09-21 08:46:57 -04:00
Daniel Larimer
6b915054d2 potential fix for peer not disconnecting after invalid block 2015-09-21 08:46:55 -04:00
Eric Frias
cdd5cae385 Add extra error reporting when we get a list of sync blocks that don't make sense, and replace the assert
with a log+disconnect.
2015-09-19 17:08:57 -04:00
theoreticalbts
f7980f5252 scheduler: Refactor 26007bb655 to use witness_schedule_object
The functionality is equivalent, but it now uses a separate witness_schedule_object,
and the code now lives in db_witness_schedule.cpp.
2015-09-18 14:26:54 -04:00
Daniel Larimer
966df708a5 fix unit tests 2015-09-18 13:56:32 -04:00
Daniel Larimer
26e5a72b8a Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-18 13:42:15 -04:00
Daniel Larimer
26007bb655 update shuffling algorithm 2015-09-18 13:42:12 -04:00
Eric Frias
e5777faa7d Reduce the disconnection timeout in the p2p code for when a peer offers us a block and doesn't respond, now it's one block interval, down from three. This is intended to reduce the chance of a slow peer causing us to push blocks out of order. 2015-09-18 09:39:43 -04:00
Daniel Larimer
c875c8ac11 Remove spam on reindex, only report missed blocks in real time 2015-09-18 09:19:11 -04:00
Daniel Larimer
465280fbcb Improved Logging, track blocks missed by witnesses 2015-09-18 09:13:17 -04:00
theoreticalbts
f0502ee2f1 Implement virtual op for settlement cancel #250 2015-09-17 15:46:15 -04:00
theoreticalbts
e008cbb70b database_api.cpp: Include smart_ref_impl, fix #321 2015-09-17 13:45:12 -04:00
theoreticalbts
b9727e6e1c Increase logging, improve error messages 2015-09-17 12:11:40 -04:00
theoreticalbts
e0414d390e Fix pending_block and fork handling
The pending_block member of database was a premature optimization and had an
unfortunate tendency to get out of sync, especially when switching forks.
This commit removes it, and substantially improves the handling of transactions
when switching forks.  Specifically, flooding or forking no longer causes nodes to
discard valid transactions.
2015-09-17 12:11:40 -04:00
theoreticalbts
ec030ee46c vesting_balance_evaluator.cpp: Add some logging #312 2015-09-17 11:29:41 -04:00
theoreticalbts
c6cb743588 db_management.cpp: Remove loop that does nothing 2015-09-17 11:29:41 -04:00
theoreticalbts
81cc8e4d81 Fix maintenance time computation #313 2015-09-16 11:10:57 -04:00
theoreticalbts
e4a45de195 Remove maximum_expiration for good, fix #308 [HARDFORK] 2015-09-16 10:18:54 -04:00
theoreticalbts
c57806bb85 Always generate blocks linking to head_block_id() 2015-09-15 10:54:04 -04:00
Eric Frias
1177cfe0ed Reverse direction of fork history used in block syncing 2015-09-15 09:19:39 -04:00
Daniel Larimer
f506c2b089 better debugging messages around crashes 2015-09-15 08:38:27 -04:00
Daniel Larimer
640d69aa05 Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-14 18:07:09 -04:00
Daniel Larimer
225acfff25 fetch workers by vote_id 2015-09-14 18:07:07 -04:00
Eric Frias
f0f12076fa Win32 compile fixes 2015-09-14 16:05:32 -04:00
Eric Frias
dd7d57c5ac Fix invalid assertion about fork database results 2015-09-14 15:25:04 -04:00
Daniel Larimer
93c72b0595 wallet api now returns the memo and a human readable description 2015-09-14 11:33:18 -04:00
Eric Frias
30ae8e4f34 Remove debugging code 2015-09-11 19:27:31 -04:00
Daniel Larimer
1202c0258d Merge branch 'p2p_sync_fixes' 2015-09-11 17:57:11 -04:00
Daniel Larimer
127ac7f3de add api to query worker state 2015-09-11 17:47:27 -04:00
Daniel Larimer
cf7a67ec76 Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-11 17:35:07 -04:00
Eric Frias
76a36a67ac Fix race condition that happens when we're pushing sync blocks faster than get_synopsis calls are getting through to the main thread 2015-09-11 17:33:20 -04:00
Eric Frias
e9e3b0d679 Fix an instance where we were reporting that the peer was on an unreachable blockchain when they really weren't 2015-09-11 16:15:05 -04:00
Eric Frias
0046cc0698 Fix error messages generated when peer is syncing with empty blockchain 2015-09-11 15:26:55 -04:00
theoreticalbts
a083f7b955 api: Split database_api off into own file, reorder methods by topic 2015-09-11 12:37:36 -04:00
theoreticalbts
cf15aa1df1 Remove unused file 2015-09-11 12:37:25 -04:00
Eric Frias
1141d1ce89 Disable log messages that logged every step in the process of queueing and sending messages to peers, they were seldom useful. 2015-09-11 11:17:52 -04:00
Eric Frias
f9a27059e5 Fix incorrect error message generated when syncing with peer that has no blocks 2015-09-11 10:09:42 -04:00
Daniel Larimer
7803b92324 Updating fc link 2015-09-11 08:56:16 -04:00
Daniel Larimer
b3052dfcc1 fix warnings 2015-09-11 08:53:50 -04:00
Eric Frias
8e9bd890a8 Fix bugs, improve logging in p2p sync 2015-09-10 19:33:11 -04:00
Eric Frias
928b6934e0 Merge branch 'master' into p2p_sync_fixes
Conflicts:
	libraries/chain/include/graphene/chain/database.hpp
2015-09-10 17:34:20 -04:00
Daniel Larimer
70746b82ad Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-10 16:23:02 -04:00
theoreticalbts
358a88037c wallet.cpp: Subscribe to block updates, fix #302 2015-09-10 15:56:08 -04:00
theoreticalbts
77ac6eb689 db_init.cpp: Don't allocate unnecessary asset_dynamic_data_object 2015-09-10 15:41:43 -04:00
theoreticalbts
e1530709d9 witness.cpp: Set skip_undo_history_check when --enable-stale-production is specified 2015-09-10 15:41:43 -04:00
theoreticalbts
0b6f7fe430 wallet.cpp: Ask remote DB for accounts on startup 2015-09-10 15:41:43 -04:00
Daniel Larimer
85fd62ae29 Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-10 09:48:13 -04:00
Daniel Larimer
af79de03c4 remove spam 2015-09-10 09:47:26 -04:00
Eric Frias
b6bba74301 Restore much of the syncing code from BitShares 0.x, and add optimizations that prevent us from attempting to sync with peers those blockchain diverged from ours many blocks ago, which also reduces the size of sync messages. Add logging. 2015-09-10 08:56:29 -04:00
theoreticalbts
b8b2bcf97e Implement --dbg-init-key command line option to take control of init witnesses for debugging #307 2015-09-09 17:54:30 -04:00
theoreticalbts
09c623b3f9 Remove maximum_expiration parameter #308 2015-09-09 16:50:35 -04:00
theoreticalbts
70d3f36fba database: Handle gaps in block database when reindexing 2015-09-09 14:48:06 -04:00
Daniel Larimer
1203140712 Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-09 13:59:48 -04:00
Daniel Larimer
59850cee98 Fix #305 - replay blockchain works again 2015-09-09 13:59:43 -04:00
theoreticalbts
ff2db08475 database: Undo and re-apply pending_transactions before/after pushing a block. Fixes #299 2015-09-09 11:11:58 -04:00
theoreticalbts
b84154d6e7 wallet.cpp: Call update_account() to sync all account states to the blockchain when loading a wallet 2015-09-08 16:08:15 -04:00
theoreticalbts
8ebc1cfc43 node.cpp: Don't dump empty iterators 2015-09-08 16:08:11 -04:00
Daniel Larimer
a748883fed adding API callback for observing pending transactions 2015-09-07 18:05:43 -04:00
Daniel Larimer
9080800c5b Updated APIs, fixed crash
- update fc to fix crash in websocket message handling
- added api to verify transactions without broadcasting them
- added api to broadcast a block produced outside the P2P network or
witness
2015-09-07 17:46:47 -04:00
Daniel Larimer
b2c23cd37b Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-07 10:19:54 -04:00
Daniel Larimer
a32075897f adding verify_account_authority api 2015-09-07 10:19:51 -04:00
Eric Frias
a943de8b76 When rolling back on save, remove the rolled back blocks from our
databases so when we restart and begin syncing, we re-download and
push those rolled back blocks  (fixes bug introduced in
a5071f2568).
Fix logging of incorrect block numbers in p2p log.
2015-09-04 15:22:12 -04:00
Eric Frias
3cf1eb5d5c Avoid dereferencing invalid optionals 2015-09-03 18:54:10 -04:00
Eric Frias
1e87ddff00 Fix build error 2015-09-03 18:42:57 -04:00
Daniel Larimer
866c453f1a adding extra checks on startup 2015-09-03 18:12:55 -04:00
Daniel Larimer
a84e56c2aa fix market subscriptions 2015-09-03 17:43:26 -04:00
Daniel Larimer
a5071f2568 rollback on save 2015-09-03 17:42:52 -04:00
Daniel Larimer
86bb4cdbca restoring p2p code 2015-09-03 08:31:03 -04:00
Daniel Larimer
198cfd1231 Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-02 18:43:21 -04:00
Daniel Larimer
1ebd0f5af6 Updating wallet to report participation rate. 2015-09-02 18:42:42 -04:00
Eric Frias
5662a8423c Increase duration of message cache from two blocks (which in practice meant anything > 1 block) to 30 blocks, and move the constant to config.hpp 2015-09-02 17:26:26 -04:00
theoreticalbts
025130b096 application.cpp: Fix --api-access option name 2015-09-02 14:57:02 -04:00
theoreticalbts
d2092e0d3a cli_wallet: Expose network_node API 2015-09-02 14:56:48 -04:00
Daniel Larimer
e450861166 Merge branch 'master' of github.com:cryptonomex/graphene 2015-09-02 12:18:03 -04:00
Daniel Larimer
b67e308464 updating submodule 2015-09-02 12:17:59 -04:00
Eric Frias
d35e2d6d4e reorder the p2p network's terminate_inactive_connections_loop() to prevent us
from being interrupted before we delete an unresponsive peer #288
2015-09-02 12:15:02 -04:00
Eric Frias
dd04bab521 Fix compile errors, win32 and otherwise 2015-09-02 09:48:17 -04:00
theoreticalbts
00a2d2dac7 Revert "Fix log issue in witness.cpp block_production_loop"
This reverts commit c9fbc8a411.
Updated version of fc is published, so this fix is no longer necessary.
2015-09-01 16:33:18 -04:00
theoreticalbts
b0fd510d51 cli_wallet: Print signing_key in base58 2015-09-01 16:33:11 -04:00
theoreticalbts
2dedebdca8 witness.cpp: Don't filter witnesses prematurely
If invalid witness ID's or keys are specified in the config file,
we simply don't produce until they become valid.
2015-09-01 16:21:37 -04:00
theoreticalbts
efac97e060 cli_wallet: Implement withdrawal for vesting balance objects #286 2015-09-01 16:21:35 -04:00
theoreticalbts
2f88cc86ba cli_wallet: Implement update_witness command #282 2015-09-01 16:21:33 -04:00
Daniel Larimer
fb8d17bb4b max block re-ordering increase 2015-09-01 08:57:42 -04:00
abitmore
c9fbc8a411 Fix log issue in witness.cpp block_production_loop 2015-09-01 13:05:02 +02:00
theoreticalbts
687aa7253e witness.cpp: Add a little logging on startup 2015-08-31 17:26:03 -04:00
theoreticalbts
8ad1a12149 db_witness_schedule.cpp: Give best_wit a default value of GRAPHENE_NULL_WITNESS #274 2015-08-31 17:26:03 -04:00
theoreticalbts
c14494fb68 time: Make timer use fc::time_point instead of fc::time_point_sec so witness plugin can control quantization 2015-08-31 17:26:03 -04:00
theoreticalbts
dd9dbca38c Reserve witness ID 0 2015-08-31 17:26:03 -04:00
theoreticalbts
b236d46027 witness.cpp: Simplify block production loop 2015-08-31 17:26:03 -04:00
theoreticalbts
9b4e270bc4 witness_node: Implement --genesis-timestamp command line parameter 2015-08-31 17:26:03 -04:00
theoreticalbts
f63cbe4868 application.cpp: Fix compiler warning 2015-08-31 17:26:03 -04:00
theoreticalbts
2a891ac89b Revert "adding fix for edge case"
This reverts commit 3f1b9bbb27.
2015-08-31 12:50:45 -04:00
Daniel Larimer
3f1b9bbb27 adding fix for edge case 2015-08-31 12:18:45 -04:00
Daniel Larimer
c1b5eb95e1 update subscriptions to work with keys 2015-08-28 13:58:49 -04:00
theoreticalbts
a23e2ec3fe cli_wallet: Include block_id and signed_by in get_block API result #253 2015-08-28 00:19:45 -04:00
theoreticalbts
40fce42421 db_witness_schedule.cpp: Fix min_witness_separation computation (again) 2015-08-27 16:42:07 -04:00
theoreticalbts
363a7fbeb1 embed_genesis: Update program name in status messages 2015-08-27 15:23:18 -04:00
Daniel Larimer
2a494d9de0 Merge branch 'witness_schedule_refactor'
Also fix object_id addition
2015-08-27 11:33:42 -04:00
Daniel Larimer
3bc66e31a2 potential fix and extra debugging for get_scheduled_witness 2015-08-27 10:46:09 -04:00
Daniel Larimer
b8e16e2e94 fix object id math 2015-08-27 10:45:44 -04:00
Daniel Larimer
df3318efc6 adding extra checks for unusual failure of get_scheduled_witness 2015-08-27 09:08:38 -04:00
theoreticalbts
4a350a5c0c Initialize recently_missed_count to 0 if slots were missed at genesis 2015-08-26 19:06:54 -04:00
Daniel Larimer
761fcb3d20 fix bloom filter to set optimal parameters 2015-08-26 18:45:06 -04:00
Daniel Larimer
12cd23df57 Merge branch 'witness_schedule_refactor' of github.com:cryptonomex/graphene into witness_schedule_refactor 2015-08-26 18:36:36 -04:00
theoreticalbts
013033001f Don't infinitely recurse when block generation fails #261 2015-08-26 18:16:34 -04:00
Daniel Larimer
e5106c15a3 update subscribe callback 2015-08-26 18:01:48 -04:00
theoreticalbts
e5ada2756a Remove experimental p2p code #273 2015-08-26 17:51:55 -04:00
theoreticalbts
59a3ca32b7 Remove secret hashes from witnesses 2015-08-26 17:43:00 -04:00
theoreticalbts
695978cfa1 Implement committee_member_update operation #258 2015-08-26 17:42:50 -04:00
theoreticalbts
7db477b9d7 Implement witness_update_operation #258 2015-08-26 17:33:19 -04:00
theoreticalbts
19d10e462c Implement GRAPHENE_PROXY_TO_SELF_ACCOUNT #267 2015-08-26 17:09:49 -04:00
theoreticalbts
143c1395c2 Be more explicit about GRAPHENE_COMMITTEE_ACCOUNT 2015-08-26 16:10:34 -04:00
theoreticalbts
e1e73cfe55 genesis: Set aside some low ID's for future special accounts and assets #230 2015-08-26 16:10:34 -04:00
theoreticalbts
6c052294e1 Remove block randomness and rewrite witness scheduling 2015-08-26 15:36:27 -04:00
theoreticalbts
dcc4f8076b database.hpp: Simplify get_scheduled_witness() return value 2015-08-26 15:36:26 -04:00
theoreticalbts
0bcfc69da2 Further improve Merkle root algorithm, implement unit test #266
This commit redefines the hash h of a node in the Merkle tree as:

h(unary_node) = unary_node
h(binary_node) = H(left_child + right_child)

Previous code in c0b9af9a99 defined hash as:

h(unary_node) = H(unary_node + digest_type())
h(binary_node) = H(left_child + right_child)

The improved definition in this commit saves some hash computations.
2015-08-26 15:36:05 -04:00
theoreticalbts
d1484fb41e cli_wallet: Implement approve_proposal to more easily approve proposals 2015-08-25 18:02:52 -04:00
theoreticalbts
1d2dc6abda cli_wallet: Implement propose_parameter_change to more easily make proposals 2015-08-25 18:02:52 -04:00
theoreticalbts
c2e5432a30 Remove block randomness and rewrite witness scheduling 2015-08-25 18:01:15 -04:00
theoreticalbts
30296d9c36 database.hpp: Simplify get_scheduled_witness() return value 2015-08-25 17:59:15 -04:00
Daniel Larimer
a79eff2761 progress toward witness schedule refactor 2015-08-25 13:45:20 -04:00
Eric Frias
cb3c23a17b Avoid referencing uninitialized memory 2015-08-24 19:35:56 -04:00
Daniel Larimer
0532661937 extra performance while reindexing 2015-08-24 18:50:09 -04:00
Daniel Larimer
2464b788ad improve reindexing performance 2015-08-24 17:57:44 -04:00