Commit Graph

  • 3d7c6f831c Add weak_fn Vinnie Falco 2014-11-08 09:40:17 -08:00
  • 6b1d213cc2 Add weak_fn Vinnie Falco 2014-11-08 09:40:17 -08:00
  • ef57b3954c Add missing include needed for std::bad_cast in LexicalCast.h David Schwartz 2014-11-07 15:18:01 -08:00
  • 42bec13a83 Add missing include needed for std::bad_cast in LexicalCast.h David Schwartz 2014-11-07 15:18:01 -08:00
  • 4415a179b3 Update freeze test for moved TxFlags.h Vinnie Falco 2014-11-07 14:12:43 -08:00
  • 878070084e Refactor the structure of source files: * New src/ripple/crypto and src/ripple/protocol directories * Merged src/ripple/common into src/ripple/basics * Move resource/api files up a level * Add headers for "include what you use" * Normalized include guards * Renamed to JsonFields.h * Remove obsolete files * Remove net.h unity header * Remove resource.h unity header * Removed some deprecated unity includes Vinnie Falco 2014-11-07 07:05:38 -08:00
  • 5d42604efd Refactor the structure of source files: * New src/ripple/crypto and src/ripple/protocol directories * Merged src/ripple/common into src/ripple/basics * Move resource/api files up a level * Add headers for "include what you use" * Normalized include guards * Renamed to JsonFields.h * Remove obsolete files * Remove net.h unity header * Remove resource.h unity header * Removed some deprecated unity includes Vinnie Falco 2014-11-07 07:05:38 -08:00
  • ef5adc507a Add missing includes. Vinnie Falco 2014-11-07 06:46:53 -08:00
  • b134b7d3f6 Add missing includes. Vinnie Falco 2014-11-07 06:46:53 -08:00
  • 788219fe05 Adjust SSL context generation for Server: The creation of self-signed certificates slows down the command line client when launched repeatedly during unit test. * Contexts are no longer generated for the command line client * A port with no secure protocols generates an empty context Vinnie Falco 2014-11-07 04:43:54 -08:00
  • 9a7f66cfe9 Fix compilation errors in RPC/RipplePathFind.cpp Tom Ritchford 2014-11-06 21:57:09 -05:00
  • daa4d16e61 Remove unused isXRP(Issue) function. Tom Ritchford 2014-10-29 14:32:14 -04:00
  • cf05f87795 Fix pathfinding with multiple issuers for one currency (RIPD-618). Tom Ritchford 2014-10-27 14:45:58 -04:00
  • c2f2f83b7c Clean up Pathfinder. Tom Ritchford 2014-10-09 13:57:22 -04:00
  • b30b2a523f Fix public member names of RPC::Context. Tom Ritchford 2014-11-03 14:41:44 -05:00
  • 150a3810a8 Update npm test rippled.cfg to use [server]: The test now generates a configuration file with the new configuration sections define by the Universal Port feature. Nicholas Dudfield 2014-11-04 08:07:18 +07:00
  • ac0eaa912b Universal Port (RIPD-160): This changes the behavior and configuration specification of the listening ports that rippled uses to accept incoming connections for the supported protocols: peer (Peer Protocol), http (JSON-RPC over HTTP), https (JSON-RPC) over HTTPS, ws (Websockets Clients), and wss (Secure Websockets Clients). Each listening port is now capable of handshaking in multiple protocols specified in the configuration file (subject to some restrictions). Each port can be configured to provide its own SSL certificate, or to use a self-signed certificate. Ports can be configured to share settings, this allows multiple ports to use the same certificate or values. The list of ports is dynamic, administrators can open as few or as many ports as they like. Authentication settings such as user/password or admin user/admin password (for administrative commands on RPC or Websockets interfaces) can also be specified per-port. Vinnie Falco 2014-10-31 13:32:28 -07:00
  • 05a04aa801 Set version to 0.26.4 0.26.4 Vinnie Falco 2014-11-03 16:53:37 -08:00
  • ea7013a34d Improved beast::http::message: * Add headers::erase * Set http::message version with std::pair * Use std::pair for headers::value_type Vinnie Falco 2014-10-30 17:16:54 -07:00
  • e37d4043f6 Add missing includes to make headers compile separately Vinnie Falco 2014-11-01 12:00:12 -07:00
  • d073425b44 Improved beast::http::message: * Add headers::erase * Set http::message version with std::pair * Use std::pair for headers::value_type Vinnie Falco 2014-10-30 17:16:54 -07:00
  • 825b18cf71 Add bin/stop-test.js shutdown testing script: This script launches rippled repeatedly and then issues a stop command after a variable amount of time. This is to test the shutdown of the application and catch errors. Nicholas Dudfield 2014-11-03 14:07:29 +07:00
  • 549ad3204f Fix race conditions closing HTTP I/O objects: This fixes a case where stop can sometimes skip calling close on some I/O objects or crash in a rare circumstance where a connection is in the process of being torn down at the exact time the server is stopped. When the acceptor receives errors, it logs the error and continues listening instead of stopping. Vinnie Falco 2014-11-02 17:51:20 -08:00
  • 35f9499b67 Fix Overlay stop on exit: The stop sequence for Overlay had a race condition where autoconnect could be called after close_all, resulting in a hang on exit. This resolves the problem by putting the close and timer operations on a strand: * Rename some Overlay members * Put close on strand and tidy up members * Use completion handler instead of coroutine for timer * Use App io_service in PeerFinder Vinnie Falco 2014-11-02 10:00:36 -08:00
  • db82c35c17 Remove spurious assert in ResolverAsioImpl Vinnie Falco 2014-11-03 07:09:40 -08:00
  • 73c74f753c Change to the Application io_service: * Simplified the implementation and removed class IoServicePool * The io_service outlives the components of the Application Vinnie Falco 2014-11-02 12:32:41 -08:00
  • a38fb2a5dc Clear the acquiring ledger when shutting down NetworkOPs: This solves a circular destruction problem on exit. JoelKatz 2014-11-03 13:54:11 -08:00
  • 38e99e01f9 Improve nodestore benchmarking: * Use more succinct while loops on NodeFactory. * Better formatting of multiple test results. * Updated benchmarks. * Use simpler and faster RNG to generate test data. Donovan Hide 2014-11-02 00:54:26 +00:00
  • a1f46e84b8 Add new RocksDBQuickFactory for benchmarking: This new factory is intended for benchmarking against the existing RocksDBFactory and has the following differences. * Does not use BatchWriter * Disables WAL for writes to memtable * Uses a hash index in blocks * Uses RocksDB OptimizeFor… functions See Benchmarks.md for further discussion of some of the issues raised by investigation of RocksDB performance. Donovan Hide 2014-10-31 19:23:26 +00:00
  • 6540804571 Add repeatable NodeStore timing benchmark: The timing test is changed to overcome possible file buffer cache effects by creating different read access patterns. The unittest-arg command line arguments allow running the benchmarks against any of the available backends and altering the parameters passed in the same format as rippled.cfg. The num_objects parameter permits variation of the number of key/values inserted. The data is random but matches reasonably well the values that rippled might generate. Donovan Hide 2014-10-31 18:47:29 +00:00
  • eb64a4387d Refactor Stoppable: The Stoppable interface aids in the enforcement of invariants needed to successful start and stop a multi-threaded application composed of classes that depend on each other in complex ways. * Test written to confirm the current behavior. * Comments updated to reflect the current behavior. * Public API reduced to what is currently in use. * Protected data members made private. * volatile bool members changed to std::atomic<bool>. * std::atomic<int> members changed to std::atomic<bool>. * Name storage uses std::string Howard Hinnant 2014-10-29 14:23:41 -04:00
  • ffe6707595 Refactor Stoppable: The Stoppable interface aids in the enforcement of invariants needed to successful start and stop a multi-threaded application composed of classes that depend on each other in complex ways. * Test written to confirm the current behavior. * Comments updated to reflect the current behavior. * Public API reduced to what is currently in use. * Protected data members made private. * volatile bool members changed to std::atomic<bool>. * std::atomic<int> members changed to std::atomic<bool>. * Name storage uses std::string Howard Hinnant 2014-10-29 14:23:41 -04:00
  • 68fe1a7c8f New class TempDirectory in UnitTestUtilities. Tom Ritchford 2014-10-28 17:01:55 -04:00
  • 9b21740c9f Delete temporary directories at the end of tests (RIPD-460). Tom Ritchford 2014-10-28 17:21:12 -04:00
  • bd12e2ab95 New class TempDirectory in UnitTestUtilities. Tom Ritchford 2014-10-28 17:01:55 -04:00
  • bffb5ef8b4 Avoid zero initialization of Blob: This seemed to improve the performance of the copy, although there did seem to be some byte by byte copying still present. Further investigation recommended. Donovan Hide 2014-10-31 18:38:04 +00:00
  • e4c9822d78 Enable processor-specific optimizations when available: The SConstruct is modified to enable processor specific optimizations on clang and gcc toolchains. This improves the performance of RocksDB's CRC function. It might also enable other used libraries that are in the codebase now or in the future to apply cpu-specific optimisations. The mtune option ensures that a binary compiled on one machine will function on another, Donovan Hide 2014-10-31 18:33:16 +00:00
  • 73187d8832 Remove obsolete multitls and proxy websocket features Vinnie Falco 2014-10-31 15:13:55 -07:00
  • 8101154d5e Remove obsolete websocket PROXY port Vinnie Falco 2014-10-31 15:08:38 -07:00
  • c02937fd6f Remove obsolete sections from rippled-example.cfg: * peer_port_proxy is obsolete since the MultiSocket was removed. * peer_ssl_cipher_list has no effect, SSL ciphers are hard coded for security. Vinnie Falco 2014-10-31 15:08:26 -07:00
  • 3430be4075 Add PeerFinder onRedirects function Vinnie Falco 2014-10-30 18:49:54 -07:00
  • 320897bad6 Add streambuf to_string function Vinnie Falco 2014-10-30 18:50:24 -07:00
  • 3f2b6f771f Add streambuf to_string function Vinnie Falco 2014-10-30 18:50:24 -07:00
  • 6e39b49cc2 Add Json::stream to write Value to a Streambuf Vinnie Falco 2014-10-30 07:25:13 -07:00
  • 71c34ed4e0 Remove unused ErrorReply function Vinnie Falco 2014-10-31 12:43:12 -07:00
  • 477178675c Fix parseIniFile for duplicate sections Vinnie Falco 2014-10-31 13:18:22 -07:00
  • dbdf68b248 Refactor HTTP::Server to support Universal Port: These changes are necessary to support the Universal port feature. Synopsis: Vinnie Falco 2014-10-15 00:41:10 -07:00
  • 2fd139b307 Refactor Overlay and add [overlay] config section (experimental): These changes prepare Overlay for the Universal Port and Hub and Spoke features. Vinnie Falco 2014-09-23 17:30:50 -07:00
  • 0b692080cd Add shared_ptr<boost::asio::ssl::context> to ssl_bundle: This gives the ssl_bundle shared ownership of the underlying ssl context so that ownership of the bundle may be transferred to other classes without introduce lifetime issues. Vinnie Falco 2014-10-26 08:24:55 -07:00
  • a6c2657062 Add shared_ptr<boost::asio::ssl::context> to ssl_bundle: This gives the ssl_bundle shared ownership of the underlying ssl context so that ownership of the bundle may be transferred to other classes without introduce lifetime issues. Vinnie Falco 2014-10-26 08:24:55 -07:00
  • eaa021c2e2 Make streambuf buffers_type iterators default constructible Vinnie Falco 2014-10-30 11:52:09 -07:00
  • 78a0bc0e2c Make streambuf buffers_type iterators default constructible Vinnie Falco 2014-10-30 11:52:09 -07:00
  • d352a744a5 Enable std::array overloads for boost::asio on clang: * Remove Boost config option from beast config. * Define from compiler, or let Boost figure out itself. Edward Hennis 2014-10-30 12:36:13 -04:00
  • d7116d6867 Enable std::array overloads for boost::asio on clang: * Remove Boost config option from beast config. * Define from compiler, or let Boost figure out itself. Edward Hennis 2014-10-30 12:36:13 -04:00
  • edc15b9fa2 Use a self-signed certificate for peers (RIPD-108): Generate a new RSA key pair and a self-signed X.509v3 certificate to use with SSL connections to rippled peers. New credentials are created each startup. Josh Juran 2014-10-14 03:55:10 -07:00
  • 93d4b73b2f RippleSSLContext: Add openssl wrappers Josh Juran 2014-10-14 03:51:47 -07:00
  • 8e3849e591 Create Ripple SSL contexts using std::make_shared. Vinnie Falco 2014-10-26 10:20:54 -07:00
  • 14b439ce43 Separate beast::http::body from beast::http::message (RIPD-660): This changes the http::message object to no longer contain a body. It modifies the parser to store the body in a separate object, or to pass the body data to a functor. This allows the body to be stored in more flexible ways. For example, in HTTP responses the body can be generated procedurally instead of being required to exist entirely in memory at once. Vinnie Falco 2014-10-29 13:22:57 -07:00
  • acaa1098f7 Separate beast::http::body from beast::http::message (RIPD-660): This changes the http::message object to no longer contain a body. It modifies the parser to store the body in a separate object, or to pass the body data to a functor. This allows the body to be stored in more flexible ways. For example, in HTTP responses the body can be generated procedurally instead of being required to exist entirely in memory at once. Vinnie Falco 2014-10-29 13:22:57 -07:00
  • 9e4c4ad8e5 Add beast::asio::basic_streambuf (RIPD-661): This is class whose interface is identical to the boost::asio::basic_streambuf, and uses an implementation that stores the data in multiple discontiguous linear buffers, expanding and shrinking as needed. Vinnie Falco 2014-10-28 12:30:30 -07:00
  • c1a5e88752 Use beast::asio::streambuf in Overlay Vinnie Falco 2014-10-28 19:53:48 -07:00
  • 74b99014d2 Add beast::asio::basic_streambuf (RIPD-661): This is class whose interface is identical to the boost::asio::basic_streambuf, and uses an implementation that stores the data in multiple discontiguous linear buffers, expanding and shrinking as needed. Vinnie Falco 2014-10-28 12:30:30 -07:00
  • 9cba944d21 Add Json::to_string: This allows the declaration for FastWriter to be hidden and makes conversion of Json::Value objects to strings a little less clunky. Tom Ritchford 2014-10-28 14:51:48 -04:00
  • 8c1c2f5d05 Eliminate a copy of the string returned by FastWriter Tom Ritchford 2014-10-28 16:49:23 -04:00
  • bf0fa8c562 Add 'sample' npm test: test/sample-test.js is the smallest possible npm test. Tom Ritchford 2014-10-16 12:26:15 -04:00
  • 3e1fc9ba6c Update unit testing command line parser parameters: A string passed by the '--unittest-arg' command line parameter is passed to suites when unit tests run and can be used to customize test behavior. * Add '--unittest-arg' command line argument * Remove obsolete '--unittest-format' command line argument Donovan Hide 2014-10-28 14:53:30 +00:00
  • f5941041d4 Improvements to beast::unit_test framework: * Some runner member functions are now thread-safe. * De-inline and tidy up declarations and definitions. * arg() interface allows command lines to be passed to suites. Vinnie Falco 2014-10-28 06:56:19 -07:00
  • 4ceba603e4 Improvements to beast::unit_test framework: * Some runner member functions are now thread-safe. * De-inline and tidy up declarations and definitions. * arg() interface allows command lines to be passed to suites. Vinnie Falco 2014-10-28 06:56:19 -07:00
  • 6591c21ace Set version to 0.26.4-rc4 Vinnie Falco 2014-10-27 11:49:39 -07:00
  • e8d03c7b9b Update rocksdb unity file Vinnie Falco 2014-10-27 11:41:44 -07:00
  • 6fbce4c2f7 Update src/rocksdb2 to rocksdb-3.5.1: Merge commit 'c168d54495d7d7b84639514f6443ad99b89ce996' into develop Vinnie Falco 2014-10-27 11:36:32 -07:00
  • c168d54495 Squashed 'src/rocksdb2/' changes from 25888ae..1fdd726 Vinnie Falco 2014-10-27 11:36:32 -07:00
  • 9ab4f7bcc6 Update SQLite to 3.8.7: sha1: 3e23079f062fc06705eead4db108ee429878b532 Vinnie Falco 2014-10-27 10:50:54 -07:00
  • 2cce22052b Update SQLite to 3.8.7: sha1: 3e23079f062fc06705eead4db108ee429878b532 Vinnie Falco 2014-10-27 10:50:54 -07:00
  • 4e19d5f625 Adjust paths and costs in Pathfinder. Tom Ritchford 2014-10-24 15:23:26 -04:00
  • 5b667da526 Squelch some warnings in rippled and third-party code. Tom Ritchford 2014-10-23 22:22:46 -04:00
  • f9fc9a3518 Reduce RippleD dependencies on Beast: * Use static_assert where appropriate * Use std::min and std::max where appropriate * Simplify RippleD error reporting * Remove use of beast::RandomAccessFile Nik Bougalis 2014-10-14 00:29:35 -07:00
  • 186ca9c235 Reduce Beast public interface and eliminate unused code: Nik Bougalis 2014-10-13 14:20:54 -07:00
  • e005cfd70e Reduce Beast public interface and eliminate unused code: Nik Bougalis 2014-10-13 14:20:54 -07:00
  • feb997481c Refactor the structure of ServerHandler: This is a cleanup to the structure of the sources. * Rename to ServerHandler * Move private implementation declaration to separate header * De-inline function definitions in the class declaration. Vinnie Falco 2014-10-26 19:15:40 -07:00
  • 2c8e90c9d8 Remove obsolete RPCServerHandler: This removes the legacy RPCServerHandler, which has been replaced by the asynchronous RPC-HTTP/S server and corresponding RPCHTTPHandler. Vinnie Falco 2014-10-26 18:50:27 -07:00
  • fefdb32d08 Remove unused and obsolete classes and tidy up: Many classes required to support type-erasure of handlers and boost::asio types are now obsolete, so these classes and files are removed: HTTPClientType, FixedInputBuffer, PeerRole, socket_wrapper, client_session, basic_url, abstract_socket, buffer_sequence, memory_buffer, enable_wait_for_async, shared_handler, wrap_handler, streambuf, ContentBodyBuffer, SSLContext, completion-handler based handshake detectors. These structural changes are made: * Some missing includes added to headers * asio module directory flattened Vinnie Falco 2014-10-25 17:59:04 -07:00
  • ec96d5afa0 Remove unused and obsolete classes and tidy up: Many classes required to support type-erasure of handlers and boost::asio types are now obsolete, so these classes and files are removed: HTTPClientType, FixedInputBuffer, PeerRole, socket_wrapper, client_session, basic_url, abstract_socket, buffer_sequence, memory_buffer, enable_wait_for_async, shared_handler, wrap_handler, streambuf, ContentBodyBuffer, SSLContext, completion-handler based handshake detectors. These structural changes are made: * Some missing includes added to headers * asio module directory flattened Vinnie Falco 2014-10-25 17:59:04 -07:00
  • 8be8853c33 Remove obsolete classes, disable unused code, and tidy up: * Removed MultiSocket. Code that previously used the MultiSocket now uses a combination of boost::asio coroutines and CRTP. * Sitefiles headers rolled up and directory flattened. * Disabled Sitefiles use of deprecated HTTPClient. * Validators headers tidied up. * Disabled Validators use of deprecated HTTPClient. Vinnie Falco 2014-10-25 17:34:50 -07:00
  • c228f5a244 Set version to 0.26.4-rc3 Vinnie Falco 2014-10-24 14:23:39 -07:00
  • d4c8b4e3ac Merge branch 'release' into develop Vinnie Falco 2014-10-25 08:07:30 -07:00
  • 6564f6c164 Fix incorrect socket closure in Overlay peers: On Application exit, Overlay was calling PeerImp::close for each peer. The implementation of PeerImp::close only canceled all pending I/O and did not call functions necessary for proper transition of Peer state during socket closure. The correct transition is ensured by calling PeerImp::detach. This changes PeerImp::close to call PeerImp::detach instead, ensuring that Overlay invariants are maintained. Specifically, that reference counts for pending I/O on peers will be correctly unwound by canceling operations and that the Peer object will be destroyed, thus allowing the Overlay to stop correctly. Vinnie Falco 2014-10-24 13:43:22 -07:00
  • 1e37a5509c Add missing includes Vinnie Falco 2014-10-23 18:12:02 -07:00
  • 1e9503deaa Set version to 0.26.2-rc2 Vinnie Falco 2014-10-23 13:49:22 -07:00
  • ab1f36c565 Revert "Add [overlay] configuration section (experimental):" Vinnie Falco 2014-10-23 13:48:52 -07:00
  • 5a212cd626 Set version to 0.26.4-rc1 Vinnie Falco 2014-10-23 13:01:12 -07:00
  • 856fd9d69f Add [overlay] configuration section (experimental): This configuration section uses the new BasicConfig interface that supports key-value pairs in the section. Some exposition is added to the example cfg file. The new settings for overlay are related to the Hub and Spoke feature which is currently in development. Production servers should not set these configuration options, they are clearly marked experimental in the example cfg file. Vinnie Falco 2014-09-23 17:30:50 -07:00
  • 4606d99951 Don't use MultiSocket in Overlay: The MultiSocket is obsolete technology which is superceded by a more straightforward, template based implementation that is compatible with boost::asio::coroutines. This removes support for the unused PROXY handshake feature. After this change a large number of classes and source files may be removed. Vinnie Falco 2014-10-13 10:43:52 -07:00
  • dbd75169e5 New JsonWriter for improved client performance (RIPD-439): When JSON-RPC and Websocket responses are calculated, the result is stored in intermediate Json::Value objects and later composed in a single linear memory buffer before being sent to the socket. These classes support a new model for building responses that supports incremental construction of JSON replies in constant time and removes the requirement that all data returned be located in continuguous memory. * New JsonWriter incrementally writes JSON with O(1) granularity and memory. * Array, Object are RAII wrappers for the O(1) JsonWriter. Tom Ritchford 2014-10-01 18:16:36 -04:00
  • 3cd391daa6 Return error_code from beast::http::basic_parser: This changes the HTTP parser interface to return an error_code instead of a bool. This eliminates the need for the error() member function and simplifies calling code. Vinnie Falco 2014-10-12 19:10:33 -07:00
  • f5b39ee911 Remove HTTP::ScopedStream: This class was used to allow stream style operator<< to write to the HTTP::Session. This is being superceded by a more robust object-based model that supports coroutines. Vinnie Falco 2014-10-14 18:37:25 -07:00
  • 88cb0a1f7a Add beast::asio::ssl_bundle workaround: This works around the limitation that 1.56 boost::asio::ssl::stream objects do not support r-value move or construction. It is required when the stream does not own the socket. Vinnie Falco 2014-10-13 10:34:35 -07:00
  • db5d52b4b2 Keep a list of section config values that are not key/value pairs: This change to BasicConfig stores all appended lines which are not key/value pairs in a separate values vector which can be retrieved later. This is to support sections containing both key/value pairs and a list of values. Vinnie Falco 2014-10-09 18:39:58 -07:00
  • dfeb9967b8 Return error_code from beast::http::basic_parser: This changes the HTTP parser interface to return an error_code instead of a bool. This eliminates the need for the error() member function and simplifies calling code. Vinnie Falco 2014-10-12 19:10:33 -07:00
  • 673e860c18 Add beast::asio::ssl_bundle workaround: This works around the limitation that 1.56 boost::asio::ssl::stream objects do not support r-value move or construction. It is required when the stream does not own the socket. Vinnie Falco 2014-10-13 10:34:35 -07:00