Граф коммитов

298 Коммитов

Автор SHA1 Сообщение Дата
Eddy Ashton 5b40ba7b42
Change C++ application entry point to remove dependency on frontends (#3562) 2022-02-21 10:13:33 +00:00
Eddy Ashton 663bce37f3
Public C++ crypto API (#3569) 2022-02-18 08:19:22 +00:00
Eddy Ashton 87c62274e3
Remove Debug= lines from oe_sign.conf (#3554) 2022-02-15 16:08:09 +00:00
Eddy Ashton c4ea8dfff2
Public header cleanup, part 2 (#3543) 2022-02-14 17:52:04 +00:00
Eddy Ashton d860527326
Move some headers to public, remove some unnecessary includes (#3533) 2022-02-11 09:35:38 +00:00
Julien Maffre 6428dd9fbd
Move service table definitions to new `service/tables` folder (#3518) 2022-02-08 17:14:41 +00:00
Eddy Ashton 4ee0d1579a
Add system for offloading index to disk (#3444) 2022-01-31 19:29:03 +00:00
Amaury Chamayou 9fdb6617bb
Commit evidence in ledger (#3460) 2022-01-31 18:19:48 +00:00
Eddy Ashton 953d8b1e51
Include frontend prefix in generated OpenAPI documents (#3464) 2022-01-28 16:03:15 +00:00
Christoph M. Wintersteiger 42b12921c1
Remove more mbedTLS leftovers (#3428) 2022-01-19 13:13:08 +00:00
Christoph M. Wintersteiger 8666bbc96f
Remove mbedTLS (#3394)
Now that we use OpenSSL for TLS connections, we removed the remaining bits that relied on mbedTLS.
2022-01-18 17:43:53 +00:00
Eddy Ashton 135bfbe3cf
Add initial implementation of Indexing system (#3280) 2022-01-14 15:49:56 +00:00
Renato Golin 4a364317cb
Implement TLS in OpenSSL, support TLS 1.3 (#3361)
* Implement TLS in OpenSSL, support TLS 1.3

This is a large commit, implementing the TLS layer in OpenSSL,
together with mbedTLS, and is part of a transition to eliminate
mbedTLS from the codebase.

The src/crypto part is done already and this is a similar effort
on src/tls. The last part is src/clients (used for testing) and
will be done as a future patch, with extensive testing separate
than this work.

This commit has a temporary structure, to allow a compiler flag
to switch between OpenSSL and mbedTLS. Unlike src/crypto, we want
the transition to be as short lived as possible, so we didn't try
to create common classes, just an include trick to use the right
library.

The main changes, in order from most generic to most specific, are:

1.  The CMake flag `TLS_PROVIDER_IS_MBEDTLS` was introduced, turned
    OFF by default, to build CCF with mbedTLS instead of OpenSSL. This
    is for testing, in case we find issues with the new implementation.
    This is in addition to `CRYPTO_PROVIDER_IS_MBEDTLS` so we can set
    each flag independently.
2.  The OpenSSL library (`libssl`) that we use is from the same place
    we pick the Crypto library (`libcrypto`). Either the system or
    OpenEnclave, decided elsewhere. No new libraries are needed.
3.  Some of the existing mbedTLS headers were moved to src/clients to
    isolate that migration from the server side. So far, it only
    needed `ca.h` and `cert.h`, which are self-conatined. Those
    will be removed with the mbedTLS cleanup.
4.  A number of `#ifdef TLS_PROVIDER_IS_MBEDTLS` were added where
    there was no other way to common up implementation. Most notably
    in the previous TLS headers (`src/tls/*.h`) that are now just
    wrappers to the actual headers (`src/tls/{mbedtls,openssl}/*.h`).
5.  All TLS errors on both mbedTLS and OpenSSL have been #defined
    to a common set of `TLS_ERR_` errors, to allow for common error
    handlind, including `WANT_READ` and `WANT_WRITE`. To keep the
    mbedTLS way, OpenSSL has a hack to return the negative
    counterparts of the error codes, so that we can treat them as
    errors, like mbedTLS.
6.  To keep the current CCF implementation intact, we had to keep
    the callback mechanism in OpenSSL. This isn't the most natural
    way of handling BIOs but it works. Both `tls_endpoint` and
    `tls_test` have a similar implementation, handling asynchronous
    I/O. This should disappear later (probably well after removing
    mbedTLS from the codebase), once we manage to get BIOs directly
    to the users, from the OpenSSL implementation.
7.  A number of mbedTLS functionality, most notably in `context.h`,
    has been adapted to allow a common implementation between the
    two libraries, for example `peer_cert()` and `get_verify_error`.
8.  A copy of `crypto::error_string()` is present in the TLS side
    so that we can more easily control each (crypto/tls) with the
    CMake flags.
9.  A number of log messages were added or changed to convey more
    information to help diagnose TLS issues. Not all development
    log messages survived into the production patch, but those that
    did can still convey most of the information and help at least
    zero in on where you need to add more logs later.
10. Removed two unused methods in `Context`: `available_bytes` and
    `set_require_auth`. Those were never called and had no easy
    equivalent in OpenSSL. Added exceptions for some unused parameters
    in OpenSSL's `CA` and `Cert` to make sure we never use them.
    If those never hit on any further testing or benchmarking, then
    we're safe to remove them when we clean up mbedTLS.
11. Added a number of `FIXME` comments, highlighting the assumptions
    from reading the mbedTLS code and what the tests have shown it
    does/needs. Some of them may be wrong, and if so, we need to
    fix them before we start with the mbedTLS cleanup.
12. Added a very large `get_verify_error` in `OpenSSL::Context`
    with all errors the `verify_result` can throw. This wasn't
    really necessary but was added as a debugging tool. Once we're
    happy none of those weird corner cases happen on our code, we
    should really remove all unused ones and common up in a
    `case default:`, where developers can add specific ones later
    for debugging purposes again.
13. Updated the `tls_test` to handle multi-part messages (past 16K),
    supporting large messages, like `tls_endpoint`. Also truncated
    the large messages to make it easier to read the test logs.
14. Changed the e2e_logging.py large message range from 2^10
    (instead of 2^14), to help developers see some messages pass
    before the 16K threshold, which helped me realise what the
    problem was.
15. Added a long README document with all core issues with the port,
    and discussions on how to clean up in the future.

* Trying to fix the ubsan error

* Remove unnecessary FIXMEs

* Add FIXME to check-todo.sh

* We don't need MbedTLS entropy for OpenSSL

The entropy source isn't a generic implementation, but one based on
mbedTLS, which we don't need for OpenSSL. This removes the last
FIXME.

* Restrict SSL cipher to TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

To improve security and keep the same behaviour, this commit forces
specific TLS1.2 and TLS1.3 ciphers that were used in the mbedTLS
implementation.

This fixes all problems in the tls_report but one:
Secure Client-Initiated Renegotiation
 -> VULNERABLE (NOT ok), DoS threat (6 attempts)

This will be looked at on the next patch.

* Disable renegotiation to avoid DoS attacks

This makes the tls_report identical to previous mbedTLS.

* Free temporary BIOs in CA/Cert c-tors

Detected by leak sanitizers, but I should have known better...

* Use Unique_BIO|X509 in peer_cert to avoid leaks

Following the C-style code in OpenSSL's documentation was a bad
idea. Using unique_ptr wrappers to guarantee nothing leaks.

* Simplify get_verify_error to avoid UB on memcpy

Same as previous UB, writing at the end of a string. Using std::string
to avoid any memory manipulation by hand.

* Fix typos
2022-01-09 15:16:46 +00:00
Amaury Chamayou a5476ef277
Application claims digest in ledger and receipts (#3292) 2022-01-09 12:33:35 +00:00
Eddy Ashton f0a7d405ec
Historical queries: Add support for fetching sets of seqnos (#3221) 2021-12-01 09:25:42 +00:00
Amaury Chamayou 83457ef588
Rename drop_requests to address #3105 (#3187) 2021-11-09 06:41:13 +00:00
Maik Riechert 7725a0f6d4
js: fix historical query handle for nextLink (#3118) 2021-10-23 07:28:31 +00:00
Maik Riechert cb38ac3ca2
JS: historical range queries (#3044) 2021-10-20 13:33:58 +01:00
Eddy Ashton 74970ad420
Add perf test of historical query fetching (#3032) 2021-09-30 13:30:26 +01:00
Amaury Chamayou 41cadaf415
Get metrics v1 (#3025) 2021-09-27 13:20:32 +01:00
Amaury Chamayou 81d7ac077e
Node certs in receipts (#2991) 2021-09-21 15:42:05 +01:00
Maik Riechert 8de9f6dbf2
cmake: standalone samples (#2990) 2021-09-17 09:51:25 +01:00
Maik Riechert e93d2f0beb
JS FFI plugin building (#2978) 2021-09-15 11:25:16 +00:00
Amaury Chamayou c1f120aaad
Historical adapter v2 (#2977) 2021-09-14 19:18:53 +01:00
Amaury Chamayou 47edd48490
Remove root from receipts (#2975) 2021-09-10 19:55:41 +00:00
Maik Riechert 0d8aa4b834
remove forum sample app (#2860) 2021-08-03 13:04:32 +01:00
Amaury Chamayou a43fd55f38
Clang 10 toolchain & default compiler updates (#2739) 2021-08-02 20:09:32 +01:00
Amaury Chamayou ad8d65091e
Return receipts for signature transactions (#2785) 2021-07-14 19:22:47 +01:00
Amaury Chamayou 4a5894b028
Fix endpoint prefix inconsistency (#2778) 2021-07-09 22:40:31 +01:00
Amaury Chamayou 2eb5798847
Remove websockets support (#2746) 2021-06-29 19:30:15 +01:00
Maik Riechert b7bd7ed55c
JS module bytecode caching (#2643) 2021-06-18 18:09:55 +01:00
Alex 11ddc7919b
BFT recovery tests (#2663) 2021-06-18 10:24:44 +01:00
Amaury Chamayou bcd4797a26
Fix forwarding escaped urls (#2591) 2021-05-14 13:06:30 +01:00
Eddy Ashton 68a483e81c
Update doc versions of `/gov` and `/node` OpenAPI (#2589) 2021-05-13 20:04:24 +01:00
Eddy Ashton ce80a0c1ff
Add a minimal JS logging app for perf testing (#2585) 2021-05-12 13:47:32 +01:00
Eddy Ashton 0184c1fb92
Add `.size` and `.clear()` to JS maps (#2569) 2021-05-10 13:08:00 +01:00
Amaury Chamayou 494b294141
Appease this week's prettier (#2573) 2021-05-10 11:34:18 +01:00
Eddy Ashton b2d73d9112
Sample consistency pass (#2566) 2021-05-07 15:58:07 +01:00
Eddy Ashton 90648533ea
Modify sample historical range query endpoint to better handle subranges (#2556) 2021-05-07 11:20:23 +01:00
Amaury Chamayou 45db0a3b27
Do not lock packages in tests (#2564) 2021-05-07 09:07:24 +01:00
Julien Maffre df8d6928ea
Install `version.h` under `include/ccf` (#2562) 2021-05-06 19:47:00 +01:00
Amaury Chamayou 5d4da8e8c6
Mitigate tsoa directory creation race (#2558) 2021-05-06 16:43:34 +01:00
Eddy Ashton 8215d9f851
Add `get_quotes_for_all_trusted_nodes_v1` API (#2511) 2021-05-04 14:02:14 +01:00
Eddy Ashton 5aa666f7a1
Add C++ API to get untrusted host time (#2550) 2021-05-04 10:38:59 +01:00
Amaury Chamayou 55d4495c71
Rename debian packages containing tildes to underscores to avoid GitHub's auto-replace (#2539) 2021-04-29 15:03:27 +01:00
Eddy Ashton 5383f83a9f
Add `get_id_for_this_node_v1` (#2498) 2021-04-22 14:12:25 +01:00
Maik Riechert 698cd36f19
Document forwarding_required & mode in app.json (#2475) 2021-04-15 18:25:37 +01:00
Maik Riechert 7455dd869d
Forum sample rework (#2455) 2021-04-14 19:42:04 +01:00
Eddy Ashton 3c2305978e
Move more public headers under include/ccf (#2392) 2021-03-31 18:53:28 +01:00
Maik Riechert c999015bf6
JS: Rename key_issuer -> keyIssuer (#2375) 2021-03-30 19:45:41 +01:00
Eddy Ashton aa9e82279d
Consolidate View and SeqNo typedefs (#2367) 2021-03-30 13:13:12 +01:00
Maik Riechert cd3cc2db6b
npm package & updated js docs (#2331) 2021-03-29 19:34:33 +01:00
Eddy Ashton b3e7bac57c
Define more headers as public, and split endpoints into separate library (#2328) 2021-03-25 14:19:15 +00:00
Eddy Ashton 44ac55d223
/tx and /commit use a single transaction_id rather than separate view and seqno (#2347) 2021-03-25 10:06:37 +00:00
Eddy Ashton 730b7c1cc2
Extend testing of custom auth policies (#2348) 2021-03-24 10:50:43 +00:00
Maik Riechert 429a88eed7
forum sample: adapt to tsoa type changes (#2337) 2021-03-22 10:57:42 +00:00
Maik Riechert 398c0e21f7
PascalCase JS names & JS doc for HistoricalState (#2325) 2021-03-19 10:36:23 +00:00
Julien Maffre 9ec30330ec
Change serialisation format for service maps (#2301) 2021-03-18 11:25:55 +00:00
Eddy Ashton 9292b824d1
Remove auto-JSONification of query params, allowing them to be unquoted (#2309) 2021-03-16 15:34:19 +00:00
Maik Riechert beb4e43fa0
Auto-generated JS API docs & TS cleanup (#2313) 2021-03-15 17:18:18 +00:00
Maik Riechert 2efb4d5c27
Historical JS endpoints (#2285) 2021-03-15 15:59:21 +00:00
Christoph M. Wintersteiger b3fd0656d7
Add JS endpoint for RSA key generation (#2293)
Co-authored-by: Amaury Chamayou <amaury@xargs.fr>
Co-authored-by: Maik Riechert <maik.riechert@arcor.de>
2021-03-11 16:03:26 +00:00
Eddy Ashton 8996d5d15c
Add API for getting View from SeqNo (#2283) 2021-03-10 19:21:20 +00:00
Amaury Chamayou 06d462b24c
Historical receipts (#2270) 2021-03-09 15:44:13 +00:00
Christoph M. Wintersteiger cb3d0a3fea
More key wrapping (#2246)
Adds more key wrapping methods to the crypto library and the JS app.
2021-03-01 17:07:29 +00:00
Eddy Ashton 4fd9f5f309
Historic queries: Range queries and app-dictated handles (#2233) 2021-03-01 16:19:14 +00:00
Christoph M. Wintersteiger 39ae6008dd
Move crypto code into src/crypto (#2214) 2021-02-21 17:38:57 +00:00
Julien Maffre 3c95d76f7f
Rename internal tables (#2166) 2021-02-08 13:06:59 +00:00
Julien Maffre 4fad6df042
Update quote format and record endorsements in KV (#2161) 2021-02-04 18:46:03 +00:00
Eddy Ashton 6e5dff444a
Replace TxView with MapHandle (#2109) 2021-01-27 15:06:58 +00:00
Maik Riechert 254d51093c
Add JWT perf tests (#2118) 2021-01-26 23:41:59 +00:00
Eddy Ashton ecbe8d8d05
List authn policies in JS (#2094) 2021-01-21 13:13:50 +00:00
Eddy Ashton f16759f116
Expose versioned C++ API for re-exposing endpoints (#2063) 2021-01-18 12:06:58 +00:00
Alex cba9b44944
AFT: Commands should not run within the consensus (#2062) 2021-01-12 14:21:07 +00:00
Eddy Ashton fb341191b6
Remove /metrics as a common endpoint, and misc cleanup (#2057) 2021-01-08 21:03:50 +00:00
Eddy Ashton 429258d7ef
Add example of custom auth policy, and documentation of new auth types (#2050) 2021-01-07 12:40:13 +00:00
Eddy Ashton 5e98cb86a7
Set auth policies at construction (#2048) 2021-01-05 21:18:44 +00:00
Maik Riechert 12f2a30d8f
fix test issue (#2045) 2021-01-05 15:21:22 +00:00
Eddy Ashton 8d050636d6
Support multiple auth policies, decouple auth from frontends (#2010) 2020-12-17 16:37:34 +00:00
Maik Riechert b6efc9312e
Unified error responses (#1980) 2020-12-10 17:28:58 +00:00
Maik Riechert ddb75355d4
bunp nodejs to 14 to fix ts-node issues (#1999) 2020-12-09 16:27:40 +00:00
Eddy Ashton 6b323353a8
Add safe wrappers to automatically free mbedtls types (#1974) 2020-12-03 16:40:27 +00:00
Amaury Chamayou a75945fd84
Add cmake for logging sample using a release (#1947) 2020-12-03 14:30:32 +00:00
Maik Riechert 313b208fac
Add csv import/export to forum sample & remove old tsoa sample/test (#1963) 2020-12-03 09:18:29 +00:00
Amaury Chamayou 891a8e9810
Do not use global hook to open service (#1928) 2020-12-01 18:36:39 +00:00
Eddy Ashton bf6aa1c974
Remove stub_for_code_signing.cpp (#1965) 2020-12-01 11:44:16 +00:00
Julien Maffre 216d15e8bc
Install logging JS app (#1932) 2020-11-27 08:53:09 +00:00
Amaury Chamayou 1683fa1a3d
Remove sample key from repo (#1921) 2020-11-25 10:55:12 +00:00
Eddy Ashton 86c270dfd5
Resolve missing Promise resolve type (#1907) 2020-11-20 13:34:52 +00:00
Alex a5a8eeeb7c
Minor cleanup (#1880) 2020-11-13 11:46:12 +00:00
Maik Riechert 5db994398d
JWT validation in forum sample (#1867) 2020-11-11 17:57:55 +00:00
Amaury Chamayou 82e4d007fd
Make what we can prettier (#1862) 2020-11-10 10:57:56 +00:00
Eddy Ashton efc3527b57
Expose KV foreach to JS (#1857) 2020-11-06 15:58:13 +00:00
Eddy Ashton f8bcc23add
Always create maps dynamically (#1847) 2020-11-03 15:49:59 +00:00
Amaury Chamayou 9bba96fb17
Run forum tests in CI (#1826) 2020-10-28 18:46:35 +00:00
Maik Riechert c81b7d4277
handle auth errors in error handler (#1827) 2020-10-27 17:09:23 +00:00
Maik Riechert 03028afe48
Better error handling in forum sample (#1823) 2020-10-27 15:33:05 +00:00
Maik Riechert a583161f97
@Security decorator support for forum sample / tsoa apps (#1824) 2020-10-27 11:04:41 +00:00
Maik Riechert 5305e01991
JS: Use different ES target version for node.js in forum sample tests (#1822) 2020-10-26 17:45:10 +00:00
Amaury Chamayou fa251bbfc3
Demo tweaks (#1819) 2020-10-26 16:40:18 +00:00
Maik Riechert 4c4b894bf7
Align js kvmap API to standard Map (#1807) 2020-10-22 23:16:12 +01:00
Maik Riechert 60df2554de
Forum sample: switch to URL templates & add more tests (#1794) 2020-10-22 22:11:10 +01:00
Maik Riechert 041581897e
Add Microsoft login to Forum sample (#1793) 2020-10-22 21:23:46 +01:00
Amaury Chamayou 891f8335ed
Explicit node flags (#1803) 2020-10-22 14:54:43 +01:00
Maik Riechert 783c203345
Forum sample (#1787) 2020-10-22 09:20:46 +01:00
Alex 5e1d9c6ee5
Issue signatures from history (#1732) 2020-10-14 15:27:09 +01:00
Alex f6b7bf6f43
Smallbank bft (#1741) 2020-10-12 17:09:37 +01:00
Amaury Chamayou 2c258fcb6f
Remove tx regulator demo (#1708) 2020-10-05 23:05:02 +01:00
Eddy Ashton 0cd5c4c5b1
Document dynamic table creation, and use dynamic-friendly Txs everywhere (#1674) 2020-09-30 16:33:48 +01:00
Maik Riechert 3757b5d147
Expose response body in Python client similar to request body in JS endpoints (#1621) 2020-09-20 17:47:44 +01:00
Amaury Chamayou 8e8301edac
Remove sig fwd test (#1598) 2020-09-10 15:49:52 +01:00
Eddy Ashton f5cb286b64
Remove flatbuffers (#1593) 2020-09-09 15:31:17 +01:00
Alex 6aba788a98
Renaming consensus types (#1591) 2020-09-09 10:59:57 +01:00
Alex c02338d522
AFT: Forward requests correctly (#1579) 2020-09-07 12:20:26 +01:00
Alex bc11ec1c46
Store less data when re-executing requests (#1566) 2020-09-04 16:39:02 +01:00
Julien Maffre f798d8b902
Python clients cleanup and docs (#1429) 2020-07-27 17:34:16 +01:00
Julien Maffre 61097092ce
Compile warnings enforcing and fixes (#1416) 2020-07-21 16:08:25 +01:00
Amaury Chamayou 2b6e358e62
Remove jsonrpc leftovers (#1388) 2020-07-20 14:07:33 +01:00
Eddy Ashton a9c13e45c1
Use generated votes (#1413) 2020-07-17 14:13:53 +01:00
Julien Maffre b53a4445ce
Start packaging Python infra (#1380) 2020-07-07 15:46:44 +01:00
Amaury Chamayou d10701a801
Client prefix drop (#1367) 2020-07-03 13:52:56 +01:00
Eddy Ashton cf7e544529
Add generator for membership proposals (#1370) 2020-07-03 11:16:22 +01:00
Amaury Chamayou 9de3a1f2bd
Explicit websocket handlers (#1333) 2020-06-25 11:12:56 +01:00
Eddy Ashton ef692f912d
Rename URI prefixes (#1325) 2020-06-23 11:42:13 +01:00
Eddy Ashton 7f13107402
Update endpoint installation API (#1310) 2020-06-22 11:01:12 +01:00
Eddy Ashton eb21022625
Rename standard RPCs to look more RESTful. (#1290) 2020-06-15 16:24:45 +01:00
Amaury Chamayou d4ebc3aef3
Do not use seqnos from NoKV transactions in performance tests (#1286) 2020-06-15 13:13:19 +01:00
Eddy Ashton 605cf504ed
Add a system for retrieving, verifying, and caching historical state in each node (#1267) 2020-06-11 09:59:30 +01:00
Amaury Chamayou ba4ef14df2
Websockets perf tests (#1211) 2020-05-22 17:48:34 +01:00
Eddy Ashton 7b8937e298
Remove S and D templates from kv types (#1191) 2020-05-19 10:40:32 +01:00
Eddy Ashton 176536001d
Split kv.h (#1179) 2020-05-15 17:48:03 +01:00
olgavrou 7653f4919b
enable more tests with pbft (#1118) 2020-04-29 18:19:51 +01:00
Eddy Ashton 4afabd4cca
Fix how evercrypt hashing is called (#1098) 2020-04-24 11:26:47 +01:00
Julien Maffre 73ba10cf0d
Shares table is now of constant size (#1088) 2020-04-22 12:26:04 +01:00
Eddy Ashton f36114439e
Run release enclaves without OE DEBUG flag (#1083) 2020-04-22 11:51:40 +01:00
olgavrou be1224750f
SmallBank with Flatbuffers (#1055) 2020-04-14 15:00:47 +01:00
Amaury Chamayou 5b8c99e3d2
Install scenario_perfclient (#1058) 2020-04-09 15:53:31 +01:00
Julien Maffre 15b612e3d3
Forwarding performance test with multiple clients (#1043) 2020-04-08 13:42:11 +01:00
Eddy Ashton 716ae897cc
Perf test session consistency - wait for global commit (#1039) 2020-04-07 10:32:40 +01:00
Julien Maffre 8405fbaa2d
Key shares and consortium update (#1032) 2020-04-06 16:51:57 +01:00
Eddy Ashton bfb341bb2f
Rename files for consistency (#989) 2020-03-25 16:02:04 +00:00
Eddy Ashton bd8619f2f6
Improve install with exported options (#986) 2020-03-25 14:50:30 +00:00
Eddy Ashton 4d480f4a9a
Some RPCs are GET-only (#966) 2020-03-23 10:53:05 +00:00
Julien Maffre 07e736ec3b
Fast curve for users for performance tests with signatures (#965) 2020-03-19 16:33:34 +00:00
olgavrou 41398896dc
Enable more pbft tests (#954) 2020-03-17 14:50:19 +00:00
Eddy Ashton 79388b9dc2
Construct perf TESTS_SUFFIX in cmake (#931) 2020-03-09 10:29:00 +00:00
Eddy Ashton 5eaf260f8e
Structured RPC responses (#930) 2020-03-06 16:52:16 +00:00
olgavrou c8fe792f34
One consensus build (#922) 2020-03-06 11:52:17 +00:00
Eddy Ashton 7f982dabbf
RPC handlers can directly set HTTP response fields (#921) 2020-03-06 09:42:55 +00:00
Eddy Ashton 0066cffdf4
get_rpc_handler should return UserRpcFrontend (#908) 2020-03-02 16:14:19 +00:00