Commit graph

820 commits

Author SHA1 Message Date
Peter Conrad
90137d400d Fix for recursion depth limitation 2018-03-07 15:44:10 +01:00
Peter Conrad
1ae3cc2fad Make unused parsers compile-time optional 2018-03-07 15:43:14 +01:00
Peter Conrad
43fabf618f Code deduplication 2018-03-07 15:42:46 +01:00
Peter Conrad
e37d9a5051 Code cleanups and simplifications 2018-03-07 15:42:35 +01:00
John Jones
b3053d0421 adjust spacing, add const, remove unnecessary variable, bad malloc check 2018-03-07 02:55:59 -05:00
John Jones
c225488cd4 replace tabs with spaces 2018-03-06 17:17:09 -05:00
John Jones
1fe7d4be46 Trying to get the #$%@$ tabs to disappear 2018-03-06 11:44:00 -05:00
John Jones
f5d68e9336 Adjusting for formatting guidelines 2018-03-06 09:25:38 -05:00
Peter Conrad
4d782e894f Deduplicate some code 2018-03-06 14:46:34 +01:00
Peter Conrad
52f6810735 Fixed from_file 2018-03-06 14:46:20 +01:00
John Jones
5f3ace5ca3 Added space at end of completed command 2018-03-06 08:06:18 -05:00
John Jones
e766ea9429 correctly handle list of methods 2018-03-05 14:37:14 -05:00
Peter Conrad
bbe2a8b289 JSON parsing fix from steem PR 2178 2018-03-01 18:58:23 +01:00
John Jones
046c65016b Replaced tab with spaces 2018-02-26 16:54:32 -05:00
John Jones
9d5a32c536 Moved assignment from within a loop 2018-02-26 16:47:38 -05:00
John Jones
79cf3d2b3a code cleanup 2018-02-26 16:43:54 -05:00
John Jones
abb4b9b0ab Added editline as submodule 2018-02-20 15:18:47 -05:00
Anton Autushka
7d7872cb7b some minor fixes 2018-02-06 15:37:14 +03:00
Alexey Frolov
1ae7f6bb02 FIXES:
- 'bloom_test_1': infinite loop if file not exists
- 'websocket_test': uncatched exceptions
- 'fc_crypto*' test_stream<>: uninitialized variable (hash)
- 'blowfish_chain_test': using memory after allocated heap
- memcmp: passing nullptr, when non-null expected
- undefined behavior: return value from function
- static_variant: member alignment - performance issue on 64-bit arch
- memory leak: fc::thread cleanup in asio thread
- warning: signed-unsigned comparison
- warning: unused variables
2018-02-05 12:19:06 +03:00
Alexey Frolov
5138c58e09 sanitize, remove warnings 2018-02-02 15:29:46 +03:00
Anton Autushka
20836338d2 Suppress coroutines deprecation warning in boost 1.62 2017-11-09 15:41:44 +03:00
Anton Autushka
c2a37a83bd Boost 1.61 compatibility fix 2017-11-09 15:18:58 +03:00
Vikram Rajkumar
cb627980a5 Remove unused CyoEncode and Base32
5c466150ec
2017-06-04 18:13:13 -05:00
Vikram Rajkumar
a30647d32e Revert "Add OpenSSL 1.1.0 support"
This reverts commit fee06a4c75.

Max compatible Boost version is not compatible with OpenSSL 1.1.0
2017-06-04 17:44:25 -05:00
Vikram Rajkumar
b94a338e56 Add missing include
4643586411
2017-06-01 16:49:10 -05:00
Vikram Rajkumar
680731ef1b Remove equihash 2017-06-01 16:11:35 -05:00
Vikram Rajkumar
0e2b783168 Merge remote-tracking branch 'steem/13-jsonrpc-improvements' 2017-05-21 14:37:31 -05:00
Nathan Hourt
fee06a4c75 Add OpenSSL 1.1.0 support
These changes should add support for openssl 1.1.0 while maintaining
compatibility with 1.0.2
2017-04-25 15:50:56 -05:00
Michael Vandeberg
fa63cd799f Responses contain jsonrpc field and increased readability of errors #13 2017-04-10 11:12:24 -04:00
Vikram Rajkumar
1f41494f36 Merge branch 'master' of github.com:steemit/fc 2017-03-18 11:38:57 -05:00
Vikram Rajkumar
0d0b485f3a Remove GNTP (unrelated to NTP) 2017-03-16 12:33:30 -05:00
Vikram Rajkumar
fe82998021 Remove NTP 2017-03-16 12:29:57 -05:00
Vikram Rajkumar
e3238628fc Merge pull request #2 from elmato/named-api-call
Replace the call to get_api_by_name
2017-01-30 18:11:55 -06:00
Michael Vandeberg
7144cdc20b Actually log methods and params #9 2017-01-27 12:07:50 -05:00
elmato
dd36202e74 Replace the call to get_api_by_name with a direct call to the functions that return fc::api<> in the login_api.
If the call to any of this functions succeed (because they where previously enabled),
the api will auto-register itself in the websocket_api_connection/http_api_connection and will return an api_id_type.
2017-01-27 06:03:36 +00:00
Michael Vandeberg
c1a0dca92f Refactor to use cmake build options #9 2017-01-25 11:16:52 -05:00
Michael Vandeberg
0688b7eb64 Time execution of rpc API call and log long executing calls. #9 2017-01-25 10:16:02 -05:00
elmato
aed35f5b06 Add access to HTTP request headers in websocket_connection 2017-01-16 19:55:17 +00:00
Vikram Rajkumar
2b26a51b6c Remove unused ssh code 2017-01-13 14:29:22 -06:00
Vikram Rajkumar
326140a931 Remove leftover udt code 2017-01-13 13:36:21 -06:00
Vikram Rajkumar
d1faea2bde Revert incorrect start of boost compatibility update 2017-01-13 13:36:13 -06:00
Vikram Rajkumar
9d383077fa Revert "change json seralization of map<string,T> to be object rather than array of pairs"
This reverts commit a421e28048.
2017-01-13 13:35:48 -06:00
Michael Vandeberg
72cd69bed9 Merge pull request #7 from steemit/equihash_security
Implement test_canonical_order and test_intermediate_zeros for equihash
2017-01-05 14:18:12 -05:00
Michael Vandeberg
b4b7904c2e Merge pull request #8 from steemit/rpc-catch-all
Wrap non-FC exceptions thrown by client methods
2017-01-05 14:18:02 -05:00
Daniel Larimer
b07f429556 remove udt and make websocketpp includes public 2017-01-03 15:13:22 -05:00
theoreticalbts
fe8710a7aa Implement test_canonical_order and test_intermediate_zeros for equihash 2016-12-13 15:27:44 -05:00
theoreticalbts
cfc53e8b82 Wrap non-FC exceptions thrown by client methods 2016-12-07 15:27:09 -05:00
Michael Vandeberg
9bc8991f23 Merge commit '463f242ffa4132d22a5006d653bc67b5b703851f' 2016-11-16 11:24:29 -05:00
Michael Vandeberg
50dbc2b139 Add equihash 2016-11-16 11:23:33 -05:00
theoreticalbts
463f242ffa Implement parse_size() function 2016-11-07 14:35:05 -05:00
Michael Vandeberg
013fbfb6a7 Remove logging on successful thread creation 2016-10-21 14:06:22 -04:00
theoreticalbts
962a816d17 variant.cpp: Fix bug in FC_ASSERT() 2016-10-19 09:47:11 -04:00
Daniel Larimer
6bd5a6c73b Merge branch 'master' of https://github.com/steemit/fc 2016-10-10 17:16:59 -04:00
Daniel Larimer
0ace4298c5 adding interprocess lock 2016-10-10 17:16:57 -04:00
theoreticalbts
636d4530e3 sha256: Add method to return approx log as double 2016-10-04 14:19:59 -04:00
theoreticalbts
585cea9472 sha256: Add inverse log and testing 2016-10-04 14:19:59 -04:00
Daniel Larimer
d352463e82 fix warnings generated by latest clang 2016-10-03 12:03:34 -04:00
Daniel Larimer
e7d0d26fe2 adding fixed_string definition 2016-09-15 15:29:16 -04:00
theoreticalbts
19d41b8606 Do not emit \a escape sequence 2016-09-02 10:36:11 -04:00
theoreticalbts
a7376ceba2 tcp_socket.cpp: More verbose error message 2016-08-16 14:51:50 -04:00
theoreticalbts
f3e69d81a9 sha256: Implement and test clz(), approx_log_32() 2016-08-11 12:10:14 -04:00
Daniel Larimer
e8e26838cc first step toward binary RPC 2016-07-30 18:41:03 -04:00
theoreticalbts
c672e3b4b4 json.cpp: Add missing cases for control character escape sequences 2016-07-21 13:33:36 -04:00
Daniel Larimer
e5ffc620ba updating fc to support more threads 2016-07-18 21:20:40 -04:00
Daniel Larimer
c109dbecf3 improve performince of fc::uin128 divide 2016-06-27 16:22:14 -04:00
Daniel Larimer
2bc237537c updating websocket and adding new utf8 code 2016-05-24 19:24:03 -04:00
arhag
66d4b0841d Changes to fc to get MinGW cross-compilation working 2016-05-22 01:33:19 -04:00
theoreticalbts
44ede99409 websocket.cpp: Allow specifying CA root in websocket_client constructor 2016-05-18 21:14:25 -04:00
theoreticalbts
56e36bed8f Revert "Update the websocketpp library and change the configuration options we pass"
This reverts commit d5370fc2ea.
2016-04-19 22:58:39 -04:00
theoreticalbts
1f02c6790f Revert "Add an option to the websocket server constructor to allow disabling deflate"
This reverts commit 21045dde5f.
2016-04-19 22:58:37 -04:00
Daniel Larimer
b34e8584ae Merge branch 'master' of https://github.com/steemit/fc 2016-04-08 14:18:47 -04:00
Daniel Larimer
09975ce12b adding IP address to http request handler 2016-04-08 14:18:42 -04:00
theoreticalbts
5c1bb56177 Implement modular API support
- Create class `api_base` to be base class of `api<T>`, and `typedef shared_ptr<api_base> api_ptr`
- Create function `api_base::as<T>()` to allow simple downcast to `api<T>`
- Create class `any_api` to contain an API which has been returned from the remote end, but not yet cast with `as<T>`
- `to_generic()` override allowing remote API to return `api_ptr`, thus we need not know the type of the returned API at compile time
- Allow API's to be referenced by name, if we call with a string API name in the JSON the framework calls get_api_by_name on API 1 to determine the API ID
2016-04-04 00:50:56 -04:00
Daniel Larimer
a421e28048 change json seralization of map<string,T> to be object rather than array of pairs 2016-03-17 17:24:25 -04:00
Daniel Larimer
0dca15c395 Merge branch 'master' of https://github.com/cryptonomex/fc 2016-03-11 12:33:41 -05:00
Daniel Larimer
eaa763aff1 adding canonical flag 2016-03-11 12:33:33 -05:00
Eric Frias
21045dde5f Add an option to the websocket server constructor to allow disabling deflate
compression.  Refactored the code to remove duplication between tls/non-tls
versions of the server, which appear to have been cut & paste copies of
one another that had diverged slightly.  This makes some of the fixes to
the non-tls server available in the tls server.
cryptonomex/graphene#619
2016-03-10 17:22:28 -05:00
Eric Frias
d5370fc2ea Update the websocketpp library and change the configuration options we pass
when creating the websocket servers to enable deflate compression on
websocket frames.  This is relevant to cryptonomex/graphene#540 because
the spammed data is higly compressible.  In my tests, it reduces bandwidth
for a single idle node by a factor of ~16, from 577kbps down to 36kbps.
This doesn't require any changes to the wallets, simply upgrading the
public servers will begin sending compressed data to all clients that
support it.
Note: this commit adds a dependency on zlib for non-apple platforms
(it was already required on apple)
2016-03-03 16:53:43 -05:00
theoreticalbts
83b4de067a future.cpp: Fix use-after-free bug cryptonomex/graphene#597 2016-02-25 03:04:45 -05:00
Daniel Larimer
e5ca765f15 clean up logging 2016-02-15 11:59:28 -05:00
Eric Frias
6ed7717826 Handle http requests to the websocket server async, in a similar manner to the way regular websocket messages were handled since 01445529f0. Fixes cryptonomex/graphene#251, and likely eliminates the need for the workaround used to fix cryptonomex/graphene#1 and cryptonomex/graphene#252 2016-02-10 15:25:54 -05:00
Daniel Larimer
7840ef16e9 adding rshift 2016-02-04 16:32:13 -05:00
theoreticalbts
46ed830373 variant.cpp: Tighten bool parsing in variant::as_bool() cryptonomex/graphene#525 2016-01-21 15:30:51 -05:00
Michael Vandeberg
d74eee8110 Implements deserialize for extended_public_key and extended_private_key.
Implementation needed by cryptonomex/graphene#500
2016-01-07 17:14:16 -05:00
Daniel Larimer
6495004302 move potential yields outside of catch 2015-10-09 17:08:03 -04:00
Eric Frias
2b2dfc62fc Win32 compile fixes (replace nonstandard runtime-sized auto arrays with alloca) 2015-10-05 12:09:35 -04:00
Daniel Larimer
dacdb997f8 Merge branch 'master' of https://github.com/cryptonomex/fc 2015-10-05 08:44:31 -04:00
Daniel Larimer
6872112ab0 adding extra checks for yielding while processing a catch 2015-10-05 08:44:24 -04:00
Daniel Larimer
7e32df4978 Merge pull request #46 from pmconrad/blinding
Blinding a la Oleg Andreev
2015-10-01 09:55:28 -04:00
Eric Frias
9933f57dda In asio worker threads, catch and ignore exceptions thrown by asio
handlers.  websocketspp code leaks boost exceptions from its handlers
which would otherwise terminate the program
2015-09-25 19:24:48 -04:00
Daniel Larimer
83a9e4d7c8 Update NTP performance requirments
NTP server must ACK within 300ms or time will not be set.
Removed extra printing
2015-09-23 16:22:11 -04:00
Daniel Larimer
d19f67d94f prevent yielding from catch block 2015-09-14 11:14:52 -04:00
Daniel Larimer
19e42ac4c4 fix potential crash in websocket 2015-09-07 17:46:08 -04:00
Daniel Larimer
08944de151 updating logs to append 2015-09-07 11:15:48 -04:00
theoreticalbts
80d967a70d variant_object: Implement operator() overload to copy a variant_object 2015-08-28 22:14:27 -04:00
Eric Frias
71be796af5 Remove extraneous spaces in relative time printing 2015-08-24 09:34:18 -04:00
Eric Frias
18ed468c6f Win32 compile fix (allocate buffer on heap instead of stack, probably a good
idea anyway given fc task stack sizes)
2015-08-17 12:38:54 -04:00
Nathan Hourt
9c868b3927 Fix crash on exit 2015-08-14 14:31:09 -04:00
theoreticalbts
c16bb206a3 fstream: Implement read_file_contents 2015-08-06 14:47:15 -04:00
Peter Conrad
e3fc463efc Initialize openssl properly, use ssl wrapper types instead of ..._free, unify DH_check 2015-07-30 17:43:43 +02:00
Peter Conrad
5377b45d97 Fixed signedness, simplified word-shift 2015-07-30 14:58:35 +02:00
Peter Conrad
d67c18f6c3 Fixed shift in hashes + more tests 2015-07-29 23:22:34 +02:00
Peter Conrad
ef92e68146 Created + added test vectors, various fixes - working! 2015-07-29 21:00:08 +02:00
Peter Conrad
622de81402 Added tests, fixes (sig format, canonicalization) 2015-07-29 21:00:08 +02:00
Peter Conrad
56e98e136a Initial blinding implementation, untested 2015-07-29 21:00:08 +02:00
Peter Conrad
5ecdcba4b6 Some refactoring 2015-07-29 21:00:08 +02:00
Peter Conrad
0f67ca751e Implemented extended keys 2015-07-29 20:59:32 +02:00
Vikram Rajkumar
088dadd124 Merge pull request #47 from pmconrad/testing
Testing
2015-07-29 13:29:22 -04:00
theoreticalbts
d11b48a015 exception.hpp: Implement exception constructors for const log_messages& 2015-07-28 17:01:59 -04:00
Peter Conrad
0878e7f8f8 Tested + fixed more cases 2015-07-27 22:22:20 +02:00
Peter Conrad
fe0ec4a42d Added FC_ASSERT to prevent buffer overflow 2015-07-27 21:23:15 +02:00
Peter Conrad
0e681dfb1c Added tests for base_n encodings, fixed base32 + base36 2015-07-27 21:23:15 +02:00
Eric Frias
a31f0f503d Fix compile error when readline not available 2015-07-27 12:08:28 -04:00
Daniel Larimer
e9eeb3300c adding tab completion to CLI 2015-07-27 09:11:20 -04:00
Daniel Larimer
d79855b491 Websocket shouldn't cleanup default_io_service, that should only happen ONE time when main exits. 2015-07-24 08:32:38 -04:00
Daniel Larimer
d76a15ec89 adding child key derivation for ecc keys 2015-07-23 18:45:35 -04:00
Nathan Hourt
17b64bb38f Resolve cryptonomex/graphene/issues/146 2015-07-22 12:11:04 -04:00
theoreticalbts
5f43c06bae uint128: Implement popcount() 2015-07-13 17:01:11 -04:00
Vikram Rajkumar
0391665471 Fix and cleanup safe spec; cryptonomex/graphene#10 2015-07-13 14:28:44 -04:00
theoreticalbts
787e4abf3f exception.hpp: Allow enable/disable assert trip notifications with only one dirty file 2015-07-07 21:50:26 -04:00
Scott Howard
153d3f0433
Fix cryptonomex/graphene#107: Define char as signed when comparing against EOF 2015-07-05 15:44:32 -04:00
Eric Frias
d462be0e92 Quiet harmless compiler warnings 2015-07-01 11:21:15 -04:00
theoreticalbts
7bd47af88e rpc: Move many method implementations from headers to cpp files 2015-06-30 15:54:29 -04:00
Vikram Rajkumar
701b9ac00c Remove problematic easylzma 2015-06-23 16:19:36 -04:00
Vikram Rajkumar
943fe5150e Remove unused salsa20
See https://github.com/bitshares/bitshares/issues/1089
2015-06-23 15:43:36 -04:00
Vikram Rajkumar
43f3aff577 Remove unused scrypt-jane
See https://github.com/bitshares/bitshares/issues/1016
2015-06-23 15:34:28 -04:00
Peter Conrad
8ff0f3e764 Dont ignore EOF because users cannot distinguish EOF and empty input line 2015-06-21 15:33:50 +02:00
Vikram Rajkumar
c09035dba0 Merge pull request #41 from emfrias/json_parser_mods
Json parser mods
2015-06-15 15:30:35 -04:00
Eric Frias
10e747409c Fix FC win32 compiling (secp256k1 related errors) 2015-06-15 14:38:33 -04:00
Eric Frias
c2451f30f1 Add a new mode to the variant->json generator to restore the normal
behavior of writing numbers out as numbers instead of strings
2015-06-12 11:05:58 -04:00
Eric Frias
e5a5323642 When formatting doubles as strings, use 17 digits of precision to ensure they are read back in without loss (up from 12 digits).
Add a mode to the JSON parser to parse all real numbers into strings, so we can later parse them into doubles or another fixed/floating point format to preserve as much precision as needed
2015-06-12 11:05:52 -04:00
Daniel Larimer
8087aa66d0 removing AGPL code 2015-06-11 09:10:12 -04:00
Daniel Larimer
a824aa04a9 Mapping blinding crypto to fc ecc api 2015-06-10 18:34:19 -04:00
Daniel Larimer
01445529f0 handle messages async 2015-05-29 12:11:21 -04:00
Nathan Hourt
83d5bcb147 Mark websockets as logging to rpc 2015-05-27 15:04:34 -04:00
Nathan Hourt
8012ab4705 Fix crash on exit with websocket_client 2015-05-27 14:54:11 -04:00
Eric Frias
043ead5579 Fix compile with microsoft c++ which still doesn't support noexcept 2015-05-22 16:15:00 -04:00
Daniel Larimer
ccd14c7260 Merge pull request #4 from pmconrad/libsecp256k1
fc::ecc implementations based on libsecp256k1
2015-05-20 10:30:05 -04:00
Daniel Larimer
71cca4559c adding quotes around large integers 2015-05-18 15:05:25 -04:00
Daniel Larimer
a3c284408e make CLI prompt configurable 2015-05-18 13:40:01 -04:00
Daniel Larimer
135949ee19 large integers are converted to strings in JSON printing 2015-05-15 15:58:47 -04:00
Daniel Larimer
9ef91e2245 partial fixes to crashing on websocket client close 2015-05-12 17:15:00 -04:00
Daniel Larimer
c28ed38f1a adding support for secure websocket client 2015-05-12 16:16:10 -04:00
Daniel Larimer
fb62b6421c adding ssl support to websocket 2015-05-12 14:50:08 -04:00
Daniel Larimer
812b42dbe6 adding default 2015-05-12 12:59:14 -04:00
Daniel Larimer
4f0919c493 adding sanity checks to string->json parsing 2015-05-12 12:58:47 -04:00
Peter Conrad
d9f6b7a526 Rebase + upgrade to latest libsecp256k1 API 2015-05-07 15:59:21 +02:00
Peter Conrad
a164a55c86 Fixed move constructor + assignment 2015-05-07 14:51:03 +02:00
Peter Conrad
5782fd42af Added missing constructors + pubkey::valid 2015-05-07 14:51:03 +02:00
Peter Conrad
05dee8669f Much refactoring
Fixed Move semantics in openssl impl
Use in-place construction for secp256k1
Swapped implementations in mixed - sign with libsecp256k1, verify with openssl
2015-05-07 14:51:03 +02:00