Commit graph

580 commits

Author SHA1 Message Date
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
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
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
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
a32075897f adding verify_account_authority api 2015-09-07 10:19:51 -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
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
theoreticalbts
efac97e060 cli_wallet: Implement withdrawal for vesting balance objects #286 2015-09-01 16:21:35 -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
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
Daniel Larimer
c1b5eb95e1 update subscriptions to work with keys 2015-08-28 13:58:49 -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
df3318efc6 adding extra checks for unusual failure of get_scheduled_witness 2015-08-27 09:08:38 -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
Daniel Larimer
e5106c15a3 update subscribe callback 2015-08-26 18:01:48 -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
6c052294e1 Remove block randomness and rewrite witness scheduling 2015-08-26 15:36:27 -04:00
theoreticalbts
c2e5432a30 Remove block randomness and rewrite witness scheduling 2015-08-25 18:01:15 -04:00
Eric Frias
cb3c23a17b Avoid referencing uninitialized memory 2015-08-24 19:35:56 -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
4228360409 adding extra indexing of accounts by address auths 2015-08-20 15:19:15 -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
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
d5cc6da54a adding proposed transactons to the result of get_full_account 2015-08-18 10:50:06 -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
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
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
Nathan Hourt
f3a044d963 [FWN] It seems to work now... 2015-08-14 15:28:24 -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
dffd010e8a Implement and expose get_config() to allow API access to compile constants #229 2015-08-11 15:22:12 -04:00
theoreticalbts
4d8033443c application.cpp: Use egenesis instead of create_example_genesis() 2015-08-07 16:45:53 -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
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
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
15bcd5e2a7 optionally subscribe to full account 2015-07-30 09:20:49 -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
Eric Frias
6d2b1a3648 Win32 compile fixes (missing includes, workaround for bugs in c++ parser) 2015-07-27 12:09:34 -04:00
Daniel Larimer
662dd04e45 Fix #206, adding api to return available vesting balance 2015-07-24 17:28:58 -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
Daniel Larimer
36ba2e1d45 integrate wallet with GrapheneApplication and Account 2015-07-23 10:56:07 -04:00
Daniel Larimer
6f19268ffd Merge branch 'confidential' 2015-07-22 16:24:07 -04:00
Daniel Larimer
be65c277c9 Implement and Test Confidential Transactions
This checkin contains a fully functional confidential transaction
integration with passing unit tests.
2015-07-22 14:45:13 -04:00
Nathan Hourt
81d2679db9 Cut back on log spam during resyncing 2015-07-22 11:17:30 -04:00
Nathan Hourt
ce84de41be [GUI] Fix object update notification handling 2015-07-21 17:56:52 -04:00
Daniel Larimer
3e41f726a7 Issue #45 Market Subscription Standardization
When subscribing to markets the callback will now receive something that
looks like this:

[  "REMOVED ID1", "REMOVED ID2", ...,
    { "id": "UPDATED ID3", data... },
    { "id": "UPDATED ID4", data... },
    ...
    [ FILL_OPERATION_TYPE_ID, { fill order operation data } ],
    [ FILL_OPERATION_TYPE_ID, { fill order operation data } ],
    [ FILL_OPERATION_TYPE_ID, { fill order operation data } ],
    [ FILL_OPERATION_TYPE_ID, { fill order operation data } ]
]

When ever an order is removed from the order book, its ID will be
included as a string.  When an order is modified the new order data is included as
an object. And the operations describing how orders were matched and
what fees are paid will be included as an operation, aka array.

Also added means to unsubscribe from full account data (issue #166)
2015-07-21 15:51:22 -04:00
Daniel Larimer
dffc83cca9 Refactor full account subscriptions
When subscribing to an account via the get_full_account API it will
start streaming any object relevant to the account that is added,
removed, or modified.
2015-07-21 15:19:52 -04:00
Daniel Larimer
c77cb49cc2 adding new API calls that can be used to check required signatures on transactions 2015-07-20 18:27:09 -04:00
Vikram Rajkumar
d0b8c66aad Fix Linux Clang build with missing includes; resolve #174 2015-07-20 14:57:08 -04:00
Daniel Larimer
e4c29cbe78 #166 Define type-safe API for get_full_account() 2015-07-17 22:58:36 -04:00
Nathan Hourt
0fe9276c44 [GUI] Refactor ClientDataModel, implement account balances 2015-07-17 16:06:39 -04:00
Nathan Hourt
723b11533b Progress #166: Initial implementation of get_full_accounts API call 2015-07-16 17:04:35 -04:00
Eric Frias
11a5d2b620 When the p2p code processes a block that contains transactions
we haven't seen, avoid fetching those transactions separately
2015-07-16 15:31:52 -04:00
Daniel Larimer
8ff2c94c52 Update API to address #164 2015-07-16 14:28:23 -04:00
Nathan Hourt
b433f90a55 [GUI] Use assets and balances in transfer form 2015-07-15 17:55:16 -04:00
Eric Frias
b6a5119226 Allow using hostnames for seed nodes 2015-07-15 15:48:01 -04:00
Vikram Rajkumar
2f429e07f1 Rename bad references to delegate -> committee member; #147 2015-07-13 16:08:17 -04:00
Nathan Hourt
0f6e5a74cd Progress #148: early implementation of solution 2
Needs testing in all the different scenarios, but we no longer fail to
start when resyncing.
2015-07-10 14:17:16 -04:00
Daniel Larimer
04b8820b3b Merge branch 'master' into fee_refactor 2015-07-09 16:34:56 -04:00
Daniel Larimer
7ead4f3b2d adding checkpoints #121 to application config 2015-07-09 14:19:47 -04:00
Eric Frias
5dea2825b5 Win32 compile fixes 2015-07-09 09:51:15 -04:00
Daniel Larimer
786c65d4b4 Merge branch 'master' into fee_refactor 2015-07-09 08:43:45 -04:00
Daniel Larimer
fdcf821c41 Progress on #144 - refactoring fee schedule 2015-07-08 18:45:53 -04:00
Nathan Hourt
d64c9154a7 Progress #17: Lazy load genesis state
This speeds up startup for witness_node when starting on a database
which is already initialized.
2015-07-08 17:39:34 -04:00
Nathan Hourt
ed38488155 Fix witness_node 2015-07-07 19:35:33 -04:00
theoreticalbts
d31e0108b4 app: Implement username / password based API access #139 2015-07-07 16:04:22 -04:00
theoreticalbts
1dd7316d44 Split network API into network_broadcast_api and network_node_api #118 2015-07-07 16:04:04 -04:00
theoreticalbts
efc1505612 application.cpp: Remove commented-out duplicate of create_example_genesis() logic 2015-07-07 13:07:39 -04:00
Vikram Rajkumar
68744c9de0 Initialize genesis witnesses with default secret commitment; #17, #23 2015-07-07 12:36:31 -04:00
Daniel Larimer
7d6d7066c2 merge 2015-07-06 16:55:28 -04:00
Daniel Larimer
c537e41fcb Merge branch 'master' of github.com:cryptonomex/graphene 2015-07-06 16:50:36 -04:00
Vikram Rajkumar
4a7cbaf610 Set default genesis fees to 1 GPH; #17 2015-07-06 15:00:48 -04:00
Daniel Larimer
8ccafe0f03 Refactor fee schedule for extensibility 2015-07-06 14:56:35 -04:00
Nathan Hourt
6ab59f63a7 Resolve #133: allow creation of example genesis json 2015-07-06 14:00:39 -04:00
Daniel Larimer
871aa734ae Update documentation and fix error messages, Fix #127 2015-07-02 12:11:43 -04:00
Daniel Larimer
fefa0f65f8 Issue #106 - Removing KeyObject
- this is a major refactor of the code and may have broken some behavior
in the wallet or witness nodes.
- this commit changes the serialization of operations
- the chain_tests pass
2015-07-02 01:52:45 -04:00
Eric Frias
acd595f889 Add missing functions for registering delegates 2015-07-01 17:47:39 -04:00
Nathan Hourt
66c9606652 Progress #17: Add assets, initial witness count to genesis state 2015-07-01 17:18:53 -04:00
Daniel Larimer
17c999ecd5 temporary hack to resolve #118 2015-07-01 15:42:21 -04:00
Eric Frias
9856d5e8fd Fix CLI commands for creating witnesses, add commands for listing
witnesses, registering witness url.
Derive memo, witness, etc. keys from the active key.
Make witness_create_operation accept relative key identifiers.
Prevent wif_to_key from throwing on invalid base58 input.
Make witness_node accept witness keys in WIF format.
2015-06-30 17:54:19 -04:00
Daniel Larimer
9dc7189dd6 adding ability to receive a callback when a broadcast transaction is actually included in a block 2015-06-30 17:28:16 -04:00
Nathan Hourt
c530867933 Progress #17
- Add initial support for vesting genesis balances
- Add owner/active keys to genesis accounts
- Cleanup circa balance_object and evaluator
2015-06-30 17:05:17 -04:00
Daniel Larimer
8b546cbf60 adding get_transaction api call 2015-06-29 18:48:47 -04:00
Nathan Hourt
8747a0572b Progress #17: add balance_objects to genesis, test 2015-06-29 17:18:29 -04:00
Daniel Larimer
d3391c0fe5 #98 Implement Balance Object and Evaluator 2015-06-27 11:49:41 -04:00
Daniel Larimer
e41d08d843 added callback with 'deleted' objects 2015-06-25 15:07:13 -04:00
Eric Frias
49acfb3bd6 Fix up application_impl's has_item() which was throwing to indicate a
missing item instead of returning false.  #55
2015-06-25 10:36:28 -04:00
Daniel Larimer
e7ec05f545 #74 Adding API call to get all call orders for a given account type 2015-06-24 21:09:21 -04:00
Daniel Larimer
23a633bea1 #85 adding api call get_keys_for_address 2015-06-24 16:19:33 -04:00
Daniel Larimer
ffd797c048 adding API call to return all accounts that reference a particular key id or account 2015-06-24 15:38:28 -04:00
Daniel Larimer
af812a7b51 #47 Adding API to get the available history buckets based upon the configuration 2015-06-24 12:46:03 -04:00
Nathan Hourt
44313ac8a4 Address #79: Should be fixed, but I can't test because of #55 2015-06-24 09:58:33 -04:00
theoreticalbts
ed381af304 Spell out boost::program_options in headers instead of using alias
Multiple defs of bpo alias confused gcc and broke cli_wallet build.
2015-06-23 22:35:00 -04:00
Daniel Larimer
20a10a074b Issue #47 market history added to api 2015-06-23 18:23:41 -04:00
Daniel Larimer
fdefc69baf Issue #47 - Basic, Untested, Market History Plugin 2015-06-23 17:53:10 -04:00
Daniel Larimer
962310b415 adding API call to get proposed transactions for an account 2015-06-22 17:50:50 -04:00
Nathan Hourt
3eaec849eb Progress #61: Getting witnesses/delegates by owner
Support and API are now present for retrieving witnesses and delegates
by their owners.
2015-06-22 15:03:24 -04:00
Nathan Hourt
6fc11bb5fd Resolve #59: Add witnesses to default genesis in witness_node 2015-06-19 10:23:36 -04:00
Daniel Larimer
0a5954db70 merge master 2015-06-18 15:31:30 -04:00
Daniel Larimer
ef4ed937cb Fix update_call_order
- redefine price feeds
- clean up unit test spam
2015-06-18 15:17:48 -04:00
Nathan Hourt
c9328cc7f4 Resolve #52 2015-06-17 11:48:55 -04:00
Daniel Larimer
ca89d5057c remove dependency on level db, bugs left to fix 2015-06-16 15:56:13 -04:00
Daniel Larimer
4cee2ca608 Update plugins and wallet to remove shorts 2015-06-16 11:22:28 -04:00
Eric Frias
93ecffc8a8 When get_account_balances is called with an empty list of assets,
return balances for all assets.  This fixes the wallet's
list_account_balances, which always returned an empty list.
2015-06-11 14:41:05 -04:00
Daniel Larimer
d57c0e0031 Fix #25 - listing all assets when given empty string 2015-06-09 16:31:07 -04:00
Daniel Larimer
666ffd07ae Fix #27 - return true on subscribe_to_objects 2015-06-09 16:24:55 -04:00
Daniel Larimer
d1f3ce8543 Issue #29 - get_short_orders crashes for UIA 2015-06-09 16:17:26 -04:00
Nathan Hourt
0a945b0257 Initial commit 2015-06-08 12:36:37 -04:00