Commit graph

629 commits

Author SHA1 Message Date
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
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
Daniel Larimer
8b0a22d849 Merge branch 'master' of github.com:cryptonomex/graphene 2015-07-30 09:20:51 -04:00
Daniel Larimer
15bcd5e2a7 optionally subscribe to full account 2015-07-30 09:20:49 -04:00
Nathan Hourt
82ea3c1edd [GUI] Add transaction signing
TODO: encrypt the memo (some work to facilitate this is done in this
commit)
2015-07-29 17:56:37 -04:00
Vikram Rajkumar
4d05f09613 Update submodules 2015-07-29 13:53:21 -04:00
theoreticalbts
1b5a7cb213 Implement max_auth_exceeded exception, internal exc framework, small refactor
Refactor tasks:

- Delete obsolete, commented-out implementation of verify_authority
- Make verify_authority_accounts an implementation detail of account_evaluator.cpp
- Create internal_exception macros / header
- Implement max_auth_exceeded and auth_account_not_found exceptions
2015-07-28 17:10:52 -04:00
theoreticalbts
35ab119b26 Fix throwing incorrect exception type 2015-07-28 17:10:52 -04:00
theoreticalbts
36e155bc0c Implement tx_duplicate_sig exception, fix committee_authority test 2015-07-28 17:10:52 -04:00
theoreticalbts
54103da9a8 Implement tx_irrelevant_sig exception, fix assert_op_test 2015-07-28 17:10:52 -04:00
theoreticalbts
5b9cd9122e Implement skip_slots 2015-07-28 11:58:22 -04:00
theoreticalbts
66c8cedf52 db_block.cpp: Assert legal slot_num in generate_block() to match header validation assert 2015-07-28 11:58:22 -04:00
theoreticalbts
0d0be55e10 db_witness_schedule.cpp: Implement genesis as special case in get_slot_time() 2015-07-28 11:58:22 -04:00
theoreticalbts
f80219fd52 Implement maintenance_flag in dynamic_global_properties 2015-07-28 11:58:22 -04:00
Daniel Larimer
fa9b71a463 Merge branch 'master' of github.com:cryptonomex/graphene 2015-07-27 17:50:24 -04:00
Daniel Larimer
86564e2a1b Resolve #207 Add API to get required fees. 2015-07-27 17:50:02 -04:00
Nathan Hourt
5d7ae4e6a8 [GUI] More work to support transactions
- Refactor GUI with FormBase.qml
- Fix memo handling in TransferOperation
- Add TransactionConfirmationForm.qml which will eventually display a
transaction for confirmation
2015-07-27 16:01:22 -04:00
Eric Frias
6d2b1a3648 Win32 compile fixes (missing includes, workaround for bugs in c++ parser) 2015-07-27 12:09:34 -04:00
Daniel Larimer
619e8dd3a7 updating fc with tap complete for cli wallet 2015-07-27 09:11:45 -04:00
Daniel Larimer
f371f98cd4 Fix #203 - market history plugin config supports multiple buckets 2015-07-27 08:19:27 -04:00
Daniel Larimer
662dd04e45 Fix #206, adding api to return available vesting balance 2015-07-24 17:28:58 -04:00
Daniel Larimer
7e142eb4d6 Wallet Blind Transfer Implementation
Improve Pretty Printing of Operations
Fix bug preventing wallet from being unlocked after saving while locked.
Transfer from public to blind
Transfer from blind to blind
Transfer from blind to public
Blind Account History
2015-07-24 17:02:06 -04:00
Daniel Larimer
e4ff106cd4 Partial Wallet support for Blind Transfers
public->blind
blind->blind
TODO: blind->public
2015-07-24 11:37:37 -04:00
Daniel Larimer
c740d2b3c8 Merge branch 'master' of github.com:cryptonomex/graphene 2015-07-23 18:47:32 -04:00
Daniel Larimer
57ca0c0e39 Wallet Support for Some Confidential Transactions
Support public account to blinded balance
Support receiving blinded balance given confirmation
Implement but not test blind to blind transfers.
2015-07-23 18:46:06 -04:00
theoreticalbts
430bbe42ab database.hpp: Make open() non-templated, move implementation out of header 2015-07-23 16:41:17 -04:00
Vikram Rajkumar
5d3bd282c8 Try to fix linking error; #202 2015-07-23 15:09:38 -04:00
Vikram Rajkumar
6be71b2975 Update fc submodule 2015-07-23 15:07:03 -04:00
Daniel Larimer
efe948ceaf Merge branch 'master' of github.com:cryptonomex/graphene 2015-07-23 14:17:24 -04:00
Daniel Larimer
2aac4839ed partial work on blinded balances in cli wallet 2015-07-23 13:57:18 -04:00
theoreticalbts
dab74132f2 CMakeLists.txt: Reorder so database is first to build 2015-07-23 13:37:06 -04:00
theoreticalbts
cd6b574141 types.hpp: Move voting stuff to separate header 2015-07-23 13:37:06 -04:00
Vikram Rajkumar
590f10a382 Add BTS1 key import format 2015-07-23 11:57:50 -04:00
Vikram Rajkumar
c4fa9de1f8 Fix build 2015-07-23 11:53:36 -04:00
Vikram Rajkumar
af3b7dd344 Unrevert fc submodule 2015-07-23 11:53:36 -04:00
Vikram Rajkumar
c14ac442f5 Simplify genesis state; #17 2015-07-23 11:53:36 -04:00
Daniel Larimer
36ba2e1d45 integrate wallet with GrapheneApplication and Account 2015-07-23 10:56:07 -04:00
Daniel Larimer
0911bb605c Implement Wallet.hpp API 2015-07-23 09:32:29 -04:00
Daniel Larimer
c9688ae051 Fix #200 Fee Schedule is now validated when chain_paramters are validated 2015-07-22 18:40:12 -04:00
Nathan Hourt
bfa3e71393 Add return value to transaction::visit 2015-07-22 17:38:48 -04:00