Commit graph

732 commits

Author SHA1 Message Date
Eric Frias
57d14c7de8 Implement gzip-compression of rotated log files (this effectively
restores the functionality removed in 701b9ac00c,
which had lzma-compression of rotated logs)
2016-08-16 14:20:20 -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
Eric Frias
2bd8e92a75 Windows build fixes (disable compiling permessage-deflate, which isn't very useful right now. The build error will probably be resolved in websocketpp by the time we need it) 2016-03-18 09:32:55 -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
Eric Frias
fa2b8fd4d2 Merge branch 'cryptonomex_master'
# Conflicts:
#	src/network/http/websocket.cpp
2016-02-26 11:16:10 -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
f9e3f0c4e6 Merge branch 'github_master' 2015-10-06 17:02:25 -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
Eric Frias
00c02b67df 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:19:45 -04:00
Eric Frias
28475608cd Merge branch 'github_master' 2015-09-23 16:38:35 -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
Eric Frias
008dafe7d0 Merge branch 'github_master'
Conflicts:
	src/asio.cpp
	src/network/http/websocket.cpp
2015-09-18 16:03:34 -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
SynaptiCAD User
b3f8031a83 Fix whitespace padding in recent logging changes 2015-08-28 14:05:58 -04:00
Eric Frias
9f2a1e8b0c When logging timestamps for log messages, log to millisecond precision 2015-08-25 17:30:21 -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
Eric Frias
a93e3f483b Rework http client and server code to use a form of socket read/write
calls which can be canceled without trashing the stack.  Also minor
changes to the code for parsing http headers to avoid buffer
overflows.
2015-08-04 10:41:04 -04:00
Eric Frias
87a2513981 Remove some unused asio completion functions 2015-08-04 10:39:04 -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
Eric Frias
55111ebbb5 Merge branch 'github_master' 2015-07-14 13:32:58 -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
Eric Frias
1e6176911a Fix bugs in http request when using chunked content encoding.
Add missing support for parsing/reconstructing URLs with query strings
to fc::url.
Add md5 hash algorithm.
2015-07-10 10:07:14 -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
Eric Frias
3dd848d7eb Fix HTTP request to work with servers that don't specify a
content-length header (either chunked encoding or http 1.0-style.
Allow sending a different content-type in request header other
than app/json.
2015-06-29 11:34:27 -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
Eric Frias
c425a019cd Merge branch 'github_master' 2015-06-15 16:04:49 -04: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
8161f3230c Downgrade some websocket debugging wlog messages to ilogs 2015-06-12 14:08:16 -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
Eric Frias
18e80eca23 Merge branch 'github_master' 2015-06-12 10:53:02 -04:00
Eric Frias
74a377aee5 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-11 19:22:22 -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
Eric Frias
1f2593e764 Merge branch 'master' into syncad_master 2015-05-29 15:43:41 -04:00
Daniel Larimer
01445529f0 handle messages async 2015-05-29 12:11:21 -04:00
Eric Frias
b899bbd476 Merge remote-tracking branch 'github/master' 2015-05-29 09:20:58 -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