Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support IPC transport for JSON-RPC APIs #535

Closed
timbeiko opened this issue Mar 20, 2020 · 3 comments · Fixed by #3695
Closed

Support IPC transport for JSON-RPC APIs #535

timbeiko opened this issue Mar 20, 2020 · 3 comments · Fixed by #3695
Assignees
Labels
help wanted Extra attention is needed

Comments

@timbeiko
Copy link
Contributor

So that system administrators can expose JSON-RPC APIs exclusively to localhost without needing firewalls, add a IPC transport for the JSON-RPC APIs.

This would make things better for Vipnode: [https://github.com/vipnode/vipnode/issues/37#issuecomment-505197281]

Acceptance Criteria

  • IPC can be enabled or disabled independently of JSON-RPC

  • Supported API groups (admin, eth, net etc) can be specified separately for IPC and HTTP endpoints

  • IPC implementation is compatible with Web3J IPC implementation

  • IPC implementation is compatible with geth attach

@timbeiko timbeiko added the help wanted Extra attention is needed label Mar 20, 2020
@mFarghaly
Copy link

any updates on this?
it will make it easy to query nodes without exposing HTTP endpoints.

@timbeiko
Copy link
Contributor Author

@RatanRSur @abdelhamidbakhta @matkt see comment above

@atoulme atoulme reopened this Aug 20, 2021
@atoulme
Copy link
Contributor

atoulme commented Aug 20, 2021

This need is still present, reopening.

@diega diega self-assigned this Mar 23, 2022
diega added a commit to diega/besu that referenced this issue Apr 5, 2022
diega added a commit to diega/besu that referenced this issue Apr 5, 2022
diega added a commit to diega/besu that referenced this issue Apr 5, 2022
diega added a commit to diega/besu that referenced this issue Apr 5, 2022
diega added a commit to diega/besu that referenced this issue Apr 5, 2022
diega added a commit to diega/besu that referenced this issue Apr 5, 2022
diega added a commit to diega/besu that referenced this issue Apr 5, 2022
diega added a commit to diega/besu that referenced this issue Apr 5, 2022
diega added a commit to diega/besu that referenced this issue Apr 6, 2022
diega added a commit to diega/besu that referenced this issue Apr 6, 2022
diega added a commit to diega/besu that referenced this issue Apr 6, 2022
diega added a commit to diega/besu that referenced this issue Apr 6, 2022
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
The `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonSingleRequest` and `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonBatchRequest` tests were throwing ClassCastException in `o.h.b.e.a.j.JsonRpcHttpService#validateMethodAvailability` which wasn't ever catched, returning status 500 by default, but that wasn't the use case aimed to test. Another test running an exceptional method is `o.h.b.t.a.p.EnclaveErrorAcceptanceTest#whenEnclaveIsDisconnectedGetReceiptReturnsInternalError` which validates an "Internal Error" proper json-rpc response. I changed the first two tests to be consistent with the later one.

Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
The `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonSingleRequest` and `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonBatchRequest` tests were throwing ClassCastException in `o.h.b.e.a.j.JsonRpcHttpService#validateMethodAvailability` which wasn't ever catched, returning status 500 by default, but that wasn't the use case aimed to test. Another test running an exceptional method is `o.h.b.t.a.p.EnclaveErrorAcceptanceTest#whenEnclaveIsDisconnectedGetReceiptReturnsInternalError` which validates an "Internal Error" proper json-rpc response. I changed the first two tests to be consistent with the later one.

Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 7, 2022
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
The `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonSingleRequest` and `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonBatchRequest` tests were throwing ClassCastException in `o.h.b.e.a.j.JsonRpcHttpService#validateMethodAvailability` which wasn't ever catched, returning status 500 by default, but that wasn't the use case aimed to test. Another test running an exceptional method is `o.h.b.t.a.p.EnclaveErrorAcceptanceTest#whenEnclaveIsDisconnectedGetReceiptReturnsInternalError` which validates an "Internal Error" proper json-rpc response. I changed the first two tests to be consistent with the later one.

Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
…line [hyperledger#535]

Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 22, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 25, 2022
The `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonSingleRequest` and `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonBatchRequest` tests were throwing ClassCastException in `o.h.b.e.a.j.JsonRpcHttpService#validateMethodAvailability` which wasn't ever catched, returning status 500 by default, but that wasn't the use case aimed to test. Another test running an exceptional method is `o.h.b.t.a.p.EnclaveErrorAcceptanceTest#whenEnclaveIsDisconnectedGetReceiptReturnsInternalError` which validates an "Internal Error" proper json-rpc response. I changed the first two tests to be consistent with the later one.

Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 25, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 25, 2022
…line [hyperledger#535]

Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 25, 2022
diega added a commit to diega/besu that referenced this issue Apr 25, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 25, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 25, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 25, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 26, 2022
The `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonSingleRequest` and `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonBatchRequest` tests were throwing ClassCastException in `o.h.b.e.a.j.JsonRpcHttpService#validateMethodAvailability` which wasn't ever catched, returning status 500 by default, but that wasn't the use case aimed to test. Another test running an exceptional method is `o.h.b.t.a.p.EnclaveErrorAcceptanceTest#whenEnclaveIsDisconnectedGetReceiptReturnsInternalError` which validates an "Internal Error" proper json-rpc response. I changed the first two tests to be consistent with the later one.

Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 26, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 26, 2022
…line [hyperledger#535]

Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 26, 2022
diega added a commit to diega/besu that referenced this issue Apr 26, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 26, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 26, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
diega added a commit to diega/besu that referenced this issue Apr 26, 2022
Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
macfarla pushed a commit that referenced this issue Apr 27, 2022
* Fix json-rpc HTTP tests [#535]

The `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonSingleRequest` and `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonBatchRequest` tests were throwing ClassCastException in `o.h.b.e.a.j.JsonRpcHttpService#validateMethodAvailability` which wasn't ever catched, returning status 500 by default, but that wasn't the use case aimed to test. Another test running an exceptional method is `o.h.b.t.a.p.EnclaveErrorAcceptanceTest#whenEnclaveIsDisconnectedGetReceiptReturnsInternalError` which validates an "Internal Error" proper json-rpc response. I changed the first two tests to be consistent with the later one.

* Extract json-rpc HTTP authentication to a handler [#535]

* Replace TimeoutHandler in GraphQLHttpService with Vert.x's impl [#535]

* Extract json-rpc HTTP parser to a handler [#535]

* Refactor json-rpc WS handler [#535]

* Add json-rpc IPC support [#535]

Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
eum602 pushed a commit to lacchain/besu that referenced this issue Nov 3, 2023
* Fix json-rpc HTTP tests [hyperledger#535]

The `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonSingleRequest` and `o.h.b.e.a.j.JsonRpcHttpServiceTest#exceptionallyHandleJsonBatchRequest` tests were throwing ClassCastException in `o.h.b.e.a.j.JsonRpcHttpService#validateMethodAvailability` which wasn't ever catched, returning status 500 by default, but that wasn't the use case aimed to test. Another test running an exceptional method is `o.h.b.t.a.p.EnclaveErrorAcceptanceTest#whenEnclaveIsDisconnectedGetReceiptReturnsInternalError` which validates an "Internal Error" proper json-rpc response. I changed the first two tests to be consistent with the later one.

* Extract json-rpc HTTP authentication to a handler [hyperledger#535]

* Replace TimeoutHandler in GraphQLHttpService with Vert.x's impl [hyperledger#535]

* Extract json-rpc HTTP parser to a handler [hyperledger#535]

* Refactor json-rpc WS handler [hyperledger#535]

* Add json-rpc IPC support [hyperledger#535]

Signed-off-by: Diego López León <[email protected]>
Signed-off-by: Diego López León <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants