Commit Graph

39 Commits

Author SHA1 Message Date
a10zn8
481c8f1721 Add bearer token authorization for upstreams (#878) 2026-07-03 17:54:11 +03:00
a10zn8
25dbc7c388 response signing with auth key (#811)
* docs: spec for unifying response signing with auth key

Design для замены отдельной SignatureConfig на подпись ответов
RSA-ключом, взятым из auth.server.provider-private-key.

Made-with: Cursor

* docs: implementation plan for auth-based response signing

План реализации по спеке 2026-04-20-response-signing-with-auth-key-design.md.
Разбит на 9 задач: новые RsaSigner/DisabledSigner по TDD, переработка фабрики
под AuthorizationConfig, удаление SignatureConfig/signed-response, снятие
cache-гейта в EthereumLocalReader, обновление документации.

Made-with: Cursor

* feat(signature): add RsaSigner using SHA256withRSA

Made-with: Cursor

* feat(signature): add DisabledSigner that throws on sign()

Made-with: Cursor

* refactor(signature): ResponseSigner.sign returns non-null Signature

Made-with: Cursor

* refactor(signature): build signer from AuthorizationConfig

Made-with: Cursor

* refactor(config): remove signed-response YAML section and SignatureConfig

Made-with: Cursor

* refactor(signature): remove EcdsaSigner and NoSigner

Remove the obsolete ECDSA signer and the transitional NoSigner stub.
Replace NoSigner usages in tests with DisabledSigner, and pass
DisabledSigner to BroadcastReader in tests (signer is now non-null).

Made-with: Cursor

* refactor(local-reader): serve cached results for requests with nonce

Made-with: Cursor

* docs: replace signed-response with auth section incl. response signing

Made-with: Cursor

* docs: correct auth section YAML and expand Response Signing note

- docs/reference-configuration.adoc: fix the YAML shape of the auth
  section (server.keys.{provider-private-key,external-public-key} and
  publicKeyOwner) to match AuthorizationConfigReader, and expand the
  Response Signing subsection with the actual signed-message format.
- .gitignore: ignore /demo/response-signing/ (local sandbox with keys
  and generated gRPC stubs — regenerate with generate-keys.sh + protoc)
  and /docs/superpowers/ (specs/plans kept local-only for now). Any
  previously tracked files under these paths are untracked here.

Made-with: Cursor

* feat(upstream): auto-inject secure-signed label when signing is enabled

Expose ResponseSigner.enabled and thread the bean through UpstreamCreator
so Generic/Ethereum/Bitcoin creators can enrich each upstream's labels
with secure-signed=true whenever auth-backed response signing is active.
A user-provided value for the label is preserved.

Made-with: Cursor
2026-04-21 10:33:37 +03:00
a10zn8
e70ccd4feb use only generic connection in examples (#632) 2025-02-13 21:37:48 +03:00
Anton
753b7d8503 Check gas price multiply conditions (#496)
* multiply conditions

* update doc
2024-06-03 12:51:50 +03:00
Anton
772142e156 Check gas price (#494)
* add gas validation option

* gas price config for chains

* check gas price

* add tests

* fix txt

* make gas price dls

* fix config
2024-05-31 15:46:55 +03:00
Anton
99aacf8979 Remove ethereum goerli (#462)
* Remove ethereum goerli

* add Sepolia chains
2024-04-30 14:33:27 +03:00
Anton
8fc98082c6 Return limit zksync (#459)
* validateCallLimit with limit param

* add call-validate-contract to zksync

* update reader

* fix error message

* rm disable-validation for testnets/sepolia

* fix tests

* split CallLimitValidator implementations for zksync and other eth

* add callLimitBlockNumber param

* mv callLimitBlockNumber to options

* upd docs

* rm callLimitBlockNumber options param and hardcode it
add zskync call limit validator check for debug_traceBlockByNumber is available

* zksync limit check only for mainnet
2024-04-25 14:10:13 +03:00
Termina1
1091fcdb5e update links 2024-01-26 14:11:43 +02:00
KirillPamPam
9757dfd201 Add validation of chain setting (#258) 2023-08-01 14:02:31 +04:00
a10zn8
a036920c98 Update documentation sections about ethereum PoS connection (#150) 2023-03-01 12:27:24 +03:00
a10zn8
1683be8dac more granular config for upstream validation 2023-02-15 19:13:10 +04:00
Кирилл
ed0c5cb517 Add ws connection pool 2023-01-26 15:53:00 +04:00
Igor Artamonov
73f00c49d2 problem: missing docs for upstream roles
(cherry picked from commit 7ce91e3ee2afd9333173156a821872300d082482)
(cherry picked from commit 6ddef70d6e)
2022-12-13 17:07:07 +04:00
a10zn8
dca78160ba Revert "Sync upstream 7.12.2022" 2022-12-09 14:00:45 +04:00
Igor Artamonov
6ddef70d6e problem: missing docs for upstream roles
(cherry picked from commit 7ce91e3ee2afd9333173156a821872300d082482)
2022-12-07 18:28:33 +04:00
Maxksim Fomenkov
b9866fe19a Support gRPC upstream labels 2022-08-17 13:45:14 +03:00
terminal
5f85149c67 ethereum pos doc and some config naming 2022-08-01 21:26:44 +04:00
Igor Artamonov
ede552be59 problem: Bitcoin head check may lag because it checks it only once in 15 seconds
solution: use ZeroMQ connection to listen for new blocks
2022-06-25 21:26:10 -04:00
Vyacheslav Shebanov
de5720897a problem: cannot verify signature in browser
solution: support NIST P-256 curve which is supported by browser's webcrypto
2022-06-16 22:08:18 -04:00
SpontaneousOverthrow
1b3e35eb1e problem: invalid formatting(?) in doc 2022-05-26 23:01:29 -04:00
Vyacheslav Shebanov
d1ad77a345 problem: users want to verify that response are coming from their nodes
solution: edge node can sign received valued
Co-authored-by: Igor Artamonov <igor@artamonov.ru>
2022-05-26 23:00:01 -04:00
terminal
c3285354c1 add cors headers to http proxy 2022-04-21 13:03:54 +03:00
Vyacheslav Shebanov
4f1216b14f problem: some JSON RPC client cannot use IDs and process response by their order
solution: add option to preserve batch request-response correspondence order
rel: #148
2022-04-20 22:08:27 -04:00
Igor Artamonov
94289399d5 solution: [optionally] provide request/response value with access log 2022-02-10 20:58:43 -05:00
Igor Artamonov
45237592a3 solution: config option to disable an upstream 2021-12-26 15:32:18 -05:00
Igor Artamonov
b05b690804 solution: docs for WebSocket support 2021-10-29 17:55:45 -04:00
Igor Artamonov
5f159dd6d7 solution: docs for health check 2021-10-23 21:05:04 -04:00
Igor Artamonov
ebef8cf27a problem: WS connection still breaks with very large frames
solution: increase default limit and make it configurable
2021-09-22 19:35:14 -04:00
Igor Artamonov
2f2a553cd4 solution: allow configuring a quorum for custom methods 2021-08-04 14:58:28 -04:00
Igor Artamonov
5490e44caa solution: docs for monitoring with Prometheus 2021-07-20 21:59:06 -04:00
Igor Artamonov
e8fc025966 solution: docs for access logging 2021-07-19 23:15:31 -04:00
Igor Artamonov
e09b7a4eee solution: support rinkeby and ropsten testnets
fix: #64
2020-11-30 19:02:55 -05:00
Igor Artamonov
d537ff0461 solution: delegate bitcoin balance request to another upstream, if data is unavailable locally 2020-09-22 23:51:07 -04:00
Igor Artamonov
64c8cb35f3 solution: goerli support
Co-authored-by: Chase Wright <mysticryuujin@protonmail.com>
2020-08-23 20:19:00 -04:00
Igor Artamonov
3df1c0a572 solution: fallback upstreams
fix: #15
2020-07-10 23:36:35 -04:00
Igor Artamonov
0dbf25643d solution: docs for ERC-20 tokens 2020-07-06 19:29:43 -04:00
Igor Artamonov
aaf79ad643 solution: make more clear how to setup round-robin
rel: #7
2020-05-27 15:50:51 -04:00
Igor Artamonov
cfcb0bffff solution: update docs with info about Bitcoin support 2020-04-27 20:56:06 -04:00
Igor Artamonov
b5a40774d4 solution: config reference doc 2020-03-26 23:07:18 -04:00