Commit graph

624 commits

Author SHA1 Message Date
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
Eric Frias
07b5af3f07 Update fc submodule 2015-08-28 16:17:34 -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
Eric Frias
c78ec26b34 Update fc submodule 2015-08-25 17:31:04 -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
theoreticalbts
aeebb1be09 cli_wallet: Copy ws_server, ws_user, ws_password to new wallet 2015-08-24 15:15:31 -04:00
Eric Frias
c0b9af9a99 Greatly reduce the amount of time the p2p network code will wait for a peer to
return a requested block/transaction.  Make this time dependent on the actual block
interval.  This should allow the the node to give up and request the block from
another peer before the ~30 second undo interval has passed.
Fix the merkle root calculation to avoid reading
past the end of a vector.  Modify the algorithm to do what was likely intended
(this modification is currently disabled because it will yield different results
than the currently-running testnet)
Fix windows build errors.
2015-08-24 09:57:47 -04:00
Daniel Larimer
7614beb338 Merge branch 'master' of github.com:cryptonomex/graphene 2015-08-21 18:45:01 -04:00
Daniel Larimer
8d0409e524 Ground work for new p2p protocol 2015-08-21 18:44:32 -04:00
theoreticalbts
5b3d7d2149 block_database.cpp: Special-case to return false when contains() is passed all-zeros block_id #260 2015-08-21 13:18:52 -04:00
theoreticalbts
a5850bdb91 fork_database.cpp: Update is_known_block and fetch_block to also look in unlinked_index 2015-08-21 13:17:46 -04:00
theoreticalbts
32b18f6c20 block_database.cpp: Argument validation and logging in store() and fetch_block_id() 2015-08-21 13:16:36 -04:00
theoreticalbts
6372b25dea cli_wallet: Expose get_private_key() 2015-08-20 18:49:15 -04:00
Daniel Larimer
4228360409 adding extra indexing of accounts by address auths 2015-08-20 15:19:15 -04:00
Daniel Larimer
2f0065d593 genesis file specifies 101 min 2015-08-20 13:23:25 -04:00
Daniel Larimer
714261b02a merging changes 2015-08-20 08:49:18 -04:00
Daniel Larimer
8a9120e517 increasing the default minimum number of witnesses to 101 for testing 2015-08-20 08:47:38 -04:00
Nathan Hourt
eeeab17477 Polish out-of-order-block handling, write test case 2015-08-19 13:07:13 -04:00
Nathan Hourt
3a9d0df75c [FWN] Create privileged API login for web UI
This resolves #249
2015-08-19 11:40:31 -04:00
Daniel Larimer
15c99bd65b Address #247 - out-of-order blocks in fork db
- with this change the fork database now caches blocks that do not link
 and attempts to link the unlinked blocks after every new block is
 successfully linked.

 - with this change the fork database only tracks blocks as far back as
 the undo history allows.  This significantly reduces memory usage when
 there is high witness participation.
2015-08-19 09:47:10 -04:00
Daniel Larimer
7e42d4b3e8 Fix #242 - witness node crash
Rather than using futures and waiting in the destructor, the APIs now
use enable_shared_from_this and the lambda captures a shared pointer to
the API to prevent it from going out of scope.  As a result the
destructor can not be called while there is a pending async operation
which removes the need to wait in the destructor and thereby removing
the potential for an exception to be thrown causing this crash.
2015-08-18 11:36:50 -04:00
Daniel Larimer
437a112a66 Fix #244 - Improve log messages
- it is not an error to have the next slot be in the future, it happens
every maitenance interval when the skip slots is greater than 0.

- re-order the failure conditions to report configuration issues first,
   then other issues second.
2015-08-18 11:06:40 -04:00
Daniel Larimer
d5cc6da54a adding proposed transactons to the result of get_full_account 2015-08-18 10:50:06 -04:00
Vikram Rajkumar
9c2af06cc6 Fix Linux build 2015-08-17 17:09:19 -04:00
Nathan Hourt
5aa884c574 #237: Create new delayed_node app
Delayed node is much like witness_node, except it doesn't have support
for block productuion (thus cannot be a witness) and it is not intended
to use the P2P network. The delayed node requires a trusted node it can
connect to via RPC and download blocks from. The delayed node will only
download blocks from the trusted node if those blocks have received a
configurable number of confirmations.

This commit effectively resolves #237
2015-08-17 16:38:55 -04:00
Nathan Hourt
baf6bfc17b Progress #237: Begin work on delayed_node_plugin 2015-08-17 16:38:55 -04:00
Nathan Hourt
2244e467ed Fix whitespace 2015-08-17 16:38:55 -04:00
theoreticalbts
2212cfe95b config.hpp: Remove unused constants GRAPHENE_DEFAULT_NUM_WITNESSES, GRAPHENE_DEFAULT_NUM_COMMITTEE 2015-08-17 15:21:55 -04:00
theoreticalbts
4ecdea1ce2 Move min_witness_count and min_committee_member_count from config.hpp to chain_properties #235 2015-08-17 15:21:55 -04:00
theoreticalbts
a888c81ac4 worker_evaluator.hpp: Explicitly cast types in signed subtraction 2015-08-17 15:21:55 -04:00