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

136 Коммитов

Автор SHA1 Сообщение Дата
Alex e97c0415eb
Fix how we create and delete certificates in the log (#616)
Fix how we create and delete certificats in the log. This enables us to properly run more than 256 pre_prepare batches
2019-12-09 13:39:56 +00:00
Eddy Ashton e2b919ef5b
Disable PBFT cimetrics (#607) 2019-12-03 11:13:24 +00:00
Julien Maffre 652a08e285
Remove keygenerator C++ utility (#605) 2019-12-03 10:14:51 +00:00
Julien Maffre 065c2e485b
HTTP signed requests (client side) (#594) 2019-11-28 11:41:46 +00:00
Eddy Ashton 14167d3976
Support app-defined ACLs via user-data table and whoAmI RPC (#590)
* Add whoAmI and whoIs RPCs

* Name cert files [user|member]0-2, not 1-3

* Remove manual offsetting from txregulatorclient

* Separate local name from CCF-retrieved ID

* Remove manual offset from demo script too

* Auto stringify

* Add user_data field in UserInfo, settable by members

* USERS table should be whitelisted

* Trying to log most types from lua is an error

* Add privilege model to txregulator app - WIP

* Semantic indentation

* Format

* Add permissions for demo script

* who_is should return a WhoIs::Out

* Schema for new RPCs

* Fix IDs in memberclient

* Address PR comments

* Document adding users + user-data

* Move new info to existing Adding Users section
2019-11-26 17:16:08 +00:00
Alex 988c843b1b
Increase the number of heap pages in small bank (#593) 2019-11-26 13:46:11 +00:00
Alex fc1d4fbc44
PBFT view changes (#580)
Add initial integration for supporting view changes with CCF & ePBFT.
Run the election test when running CCF with ePBFT
2019-11-25 16:52:04 +00:00
Julien Maffre 05d3a89b1e
Node certificate endorsement and TLS authentication changes (#581) 2019-11-25 12:11:07 +00:00
Eddy Ashton 91c729576f
Decode msgpack and json consistently (#566)
* Use msgpack's decoder

* raw quote is a byte-array, not string

* Schema changed

* Remove manual re-encode
2019-11-18 17:04:31 +00:00
Julien Maffre 4c15a97961
Split ccf.py (#538) 2019-11-08 10:12:21 +00:00
Julien Maffre 2d2e004dbd
First version of end-to-end tests chaining (#533) 2019-11-08 09:33:47 +00:00
Alex de6e09bb17
ePBFT - smallbank and other things (#532)
- Get smallbank to work with the pbft backend
- Create a python pbft flag and then use that to make network.start_and_join work for both raft and pbft
- Bug fix where we do not return the KV version properly
- Change to use the standard allocator for pbft message allocations
2019-11-07 11:55:23 +00:00
Eddy Ashton 3ad89cf9ee Add docs outlining our performance test, tx time plotting script (#461) 2019-10-23 15:04:55 +01:00
Julien Maffre a8d5351d6a
Small bank balance as a Read handler (#421) 2019-10-09 10:59:04 +01:00
Amaury Chamayou e0a031c0c0
Merge node and mgmt frontends (#402) 2019-10-01 16:17:14 +01:00
Julien Maffre 86b5cc6ca1
Updates docs after light genesis update (#333) 2019-08-29 10:33:29 +01:00
olgavrou 72c5d4aa4f
Consensus naming (#306) 2019-08-15 17:52:43 +01:00
Julien Maffre 612303c786
Remove CircleCI and rename vsts to azure-pipelines (#301) 2019-08-12 11:10:05 +01:00
olgavrou 3843ff0ccf
Lua demo app (#287) 2019-08-08 15:21:55 +01:00
Julien Maffre 5c3d857452
Raft host/port rename (#279) 2019-08-06 12:38:19 -04:00
Eddy Ashton 3562c05470
Expose recoverable signatures, tidy keypair (#276)
* mbedtls writes with null byte, don't add another

* Don't return const context, its unusable

* Add some temporary hacky accessors

* Set secp256k1 illegal callback

* Pem holds a string

* Distinguish string pems from other data

* Recoverable signatures in keypair.h

* Catch awkward failure states

* Renames

* clang-format

* Wrap secp256k1_context so it is destroyed on error

* KeyPair inherits from PublicKey

* Feedback, name and document signature size
2019-07-31 12:35:08 +01:00
Eddy Ashton c5de34f9ad Separate standard from CCF error codes, allow app extensions (#267) 2019-07-21 16:15:28 +01:00
Eddy Ashton 0f3fa033d2
Support multiple crypto curves (#243)
* Sketch CurveImpl enum, replace macro definitions with templates

* Replace use of MD_TYPE and HASH macros with templates

* Replace HASH macro

* WIP

* Remove remaining compile-disabled code from keypair.h

* Expose CurveImpl, correct 256k1_bitcoin params

* Test all supported curves

* Add test that wrong curve fails to validate

* verify(vector, vector) should delegate, not reimplement

* Corrupt more, to ensure we affect content not padding

* Rename CURVE_CHOICE options to be LEDGER_CURVE_CHOICE

* LEDGER_CURVE_CHOICE determines default_curve_choice

* Proof-of-concept - factories for virtual implementation

* Virtualise PublicKey

* Re-enable other tests

* Remove templated CurveParameters

* Add labels, test for wrong curve, wrong impl

* Correct comment

* Delegate sign(CBuffer), reducing code duplication

* Remove TODO enum

* tls_bench compares curves for signing

* Extract make_contents

* tls_bench does comparison of all supported curves

* Tidy

* Temporary verbose logging of ecp group ID

* Produce standard (non-recoverable) signatures by default, for compatibility

* Fix curve logging, add tests of key transfer across implementations

* Verify with non-recoverable sigs too

* Log inconsistent failing cases

* Correct implementation substitutability test

* Normalize secp256k1 signatures - they may  have come from mbedtls

* Re-order picobench results for readability

* Add some secp256k1 link dependencies

* Unprotect constructors - there are legitimate uses for direct construction

* Verifier curve type is parsed from cert

* history_bench builds

* Reminder TODO comment

* frontend_test builds and passes

* Clients compile

* genesisgenerator compiles

* membervoting_test builds

* Fix sign_hash, sign/verify ack data normally

* Remove unneeded CurveParams entirely

Detect PublicKey type

Simplify construction to minimum

* Correct test with new API

* verify_hash via publickey, test sign_hash and verify_hash

* Include tests

* Update to latest signature

* Ditto

* Update function signatures for people with raw data

* Fix history calls

* When constructing from explicit key, don't pass curve too

* API updates

* Fix nodestate

* inline

* EVERYTHING BUILDS

* Tidy cmake link args

* Remove unnecessary direct use of mbedtls_ecdsa_*

* Remove uint8_t restriction in sig_size

* tls_bench actually compares relevant hash operations

* bitcoin preference doesn't need to be a macro

* Standardise use of use_bitcoin_impl

* clang-format

* Test now uses distinct manual hash operation

CHECK rather than REQUIRE

* Rename LEDGER_curve to SERVICE_IDENTITY_curve

* use fmtlib

* Let mbedtls determine message digest size/function

* Add details to all thrown errors

* Remove parameter packs, document use_bitcoin_impl

* Name magic constant, extract parse_secp256k_bc
2019-07-12 11:12:05 +01:00
Amaury Chamayou e3b1f0140e Remove warmup cooldown (#246) 2019-07-12 10:32:20 +01:00
Eddy Ashton 395e1b05cc
Remove jsonrpc::success() (#164)
* No success without an argument

* Make it clear that JoinNetwork gets an async response

* return json::success(true);

* Expect truth

* luA luI

* Make logging.lua consistent with logging.cpp

* KO OK
2019-06-17 09:30:56 +01:00
Eddy Ashton 3ca4304db1
Choose iterations of signed small bank perf tests depending on curve (#160)
* Separate lines

* Separate files for 2k and 50k signed smallbank transctions

* Choose iterations by curve
2019-06-14 13:10:57 +01:00
Julien Maffre 6be013c0e5
Increase tx count for performance test with signature (#155) 2019-06-13 10:33:34 +01:00
Julien Maffre 85f20eeb91 Support forwarding performance tests (#150)
* Remove unused coverage CI step

* Add new e2e forwarding performance test

* Remove verification file

* Re-enable storage of tx-times and metrics data + copy all clients csv
files back

* Disable signatures for forwarding test for now

* Actually push performance data

* Only push client* csv files

* Re-enable compress time and metrics

* Indentation of CI yml file

* Some more fixups

* Added fast-start for clients and fixups

* Cleanup

* Change comment

* Remove fast-start option as join protocol is now synchronous
2019-06-12 17:59:18 +01:00
Julien Maffre da51ea350e
Failing performance test fix (#126) 2019-06-06 16:02:39 +01:00
Amaury Chamayou b84f28c601
Clean up CI (#102) 2019-05-31 12:58:03 +01:00
Amaury Chamayou e2670448fb Revert "Split off performance build and use secp256k1 for client sigs benchmark"
This reverts commit bbd0c7faf1.
2019-05-30 14:05:44 +01:00
Amaury Chamayou bbd0c7faf1 Split off performance build and use secp256k1 for client sigs benchmark 2019-05-29 15:28:12 +01:00
olgavrou 3d0eb8fc36
Metrics (#79) 2019-05-21 09:27:22 +01:00
Eddy Ashton 9692fe4f8a
Fix smallbank sigs (#14)
* Don't mask exceptional failures

* Print account balances in verify-pastable format

* Update small_bank_short verification target
2019-05-02 12:24:24 +01:00
Amaury Chamayou 608b036037 Add copyright headers, remove hardcoded subscription 2019-04-30 11:05:13 +01:00
Amaury Chamayou 7cd7bde6e9 Add smallbank performance sample to CCF repo 2019-04-30 10:14:06 +01:00