Commit graph

567 commits

Author SHA1 Message Date
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
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
theoreticalbts
29b7f343a6 Remove chain_id from global_property_object 2015-08-17 15:21:55 -04:00
Vikram Rajkumar
73cc012db9 Allow restarting block production with dummy checkpoint 2015-08-17 13:56:59 -04:00
theoreticalbts
3a7e65c888 chain_property_object: Implement chain_property_object as container for unchangeable properties set at genesis #238 2015-08-17 13:38:35 -04:00
Eric Frias
ab7fcb9b4a Win32 build fixes 2015-08-17 12:39:26 -04:00
Daniel Larimer
bf47a1610c Merge branch 'master' of github.com:cryptonomex/graphene 2015-08-14 17:56:27 -04:00
Daniel Larimer
c0c36ca639 votable objects now keep track of their most recent vote count 2015-08-14 17:56:21 -04:00
Vikram Rajkumar
be55df25d0 Initial work on BTS1 key import in CLI wallet 2015-08-14 17:06:29 -04:00
Nathan Hourt
f3a044d963 [FWN] It seems to work now... 2015-08-14 15:28:24 -04:00
Vikram Rajkumar
d324a78809 Update BTS1 key import format 2015-08-14 12:43:12 -04:00
Vikram Rajkumar
1d633a508a Update submodules 2015-08-14 12:26:09 -04:00
theoreticalbts
ce624827f6 Include smart_ref_impl.hpp when dereferencing smart_ref #231 2015-08-13 14:28:54 -04:00
Daniel Larimer
25ceb9a277 return vote objects with full_account query 2015-08-13 09:29:16 -04:00
Daniel Larimer
80602a1f7b adding api to query vote objects by id 2015-08-13 09:22:05 -04:00
theoreticalbts
96fb8f60c2 fee_tests.cpp: Make sure validation actually enforces nonzero fees 2015-08-12 14:26:48 -04:00
theoreticalbts
dffd010e8a Implement and expose get_config() to allow API access to compile constants #229 2015-08-11 15:22:12 -04:00
theoreticalbts
f6c99f96b7 genesis_state.hpp: Specify definite size for initial_active_witnesses 2015-08-11 15:22:12 -04:00
theoreticalbts
3eedabbac2 Compute scaled precision at compile time, use in tests (fixes failures by prev commit) 2015-08-11 15:04:48 -04:00
theoreticalbts
44c174ad4a config.hpp: Remove CORE constant 2015-08-11 13:14:57 -04:00
Nathan Hourt
a4e5a03973 Resolve #161: Fix account creation fee scaling 2015-08-10 16:39:09 -04:00
Vikram Rajkumar
84078831e9 Update submodules; #226 2015-08-10 13:14:25 -04:00
theoreticalbts
f6a13a19f0 wallet.cpp: Put chain_id in wallet_data 2015-08-07 16:45:53 -04:00
theoreticalbts
4d8033443c application.cpp: Use egenesis instead of create_example_genesis() 2015-08-07 16:45:53 -04:00
theoreticalbts
fa5bbb830f Revert "fix egenesis build by removing it until theretical can fix it"
This reverts commit 274682d431.
2015-08-06 14:53:32 -04:00
theoreticalbts
b8828e52da fc: Add missing read_file_contents() function 2015-08-06 14:50:30 -04:00
Daniel Larimer
274682d431 fix egenesis build by removing it until theretical can fix it 2015-08-06 14:46:56 -04:00
Daniel Larimer
23f485e66f fix build 2015-08-06 14:33:34 -04:00
Daniel Larimer
b6385e2117 Adding API call: get_potential_signatures
This call allows wallets to filter the set of keys that may potentially
sign a transaction prior to calling get_required_signatures to get the
minimum subset.
2015-08-06 13:43:18 -04:00
theoreticalbts
2d1e76aed0 Get rid of chain ID global, move chain_id_type to types.hpp 2015-08-06 12:56:40 -04:00
theoreticalbts
2e9876b557 Implement chain-locked transactions 2015-08-06 12:56:37 -04:00
theoreticalbts
9f9c1e7895 egenesis: Initial implementation of embedded genesis 2015-08-06 12:42:59 -04:00
theoreticalbts
4e3a27156e genesis_state.hpp: Fix missing include 2015-08-06 12:40:53 -04:00
theoreticalbts
c6debcd59c transaction.cpp: Remove no-op 2015-08-06 12:40:53 -04:00
theoreticalbts
c7444f8d4d Implement minimal "make install" command #219 2015-08-06 12:40:53 -04:00
Daniel Larimer
39c05a0b2e adding method to get account by name 2015-08-03 16:22:19 -04:00
Nathan Hourt
99d6450473 [GUI] Implement transaction broadcasting
Still need to set expiration, so none of the transactions I broadcast
work yet... :( Sadly there is no testnet so I can't finish this. Oh well.
I'm sure it'll be much easier on Monday.
2015-07-31 17:56:27 -04:00
Vikram Rajkumar
8a8130f620 Fix genesis init bug; #17 2015-07-31 16:06:26 -04:00
Daniel Larimer
87d3d1a198 Update API and remove SPAM
subscribe_to_objects now returns the initial value of the objects, this
makes it easy for someone to fetch and subscribe in a single atomic step
rather than having to call get and then subscribe which could lead to
some inconsistencies if the object was modified after get but before
subscribe.
2015-07-31 09:53:49 -04:00
Daniel Larimer
39c99fd0a7 Merge branch 'master' of github.com:cryptonomex/graphene 2015-07-30 16:45:18 -04:00
Daniel Larimer
1b260ab37a adding spam to detect bugs 2015-07-30 16:45:14 -04:00
theoreticalbts
9dfb0d9650 Refactor impacted_accounts into app #183 2015-07-30 12:38:59 -04:00