aboutsummaryrefslogtreecommitdiffstats
path: root/rpc/json.go
Commit message (Collapse)AuthorAgeFilesLines
* rpc: implement full bi-directional communication (#18471)Felix Lange2019-02-041-251/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | New APIs added: client.RegisterName(namespace, service) // makes service available to server client.Notify(ctx, method, args...) // sends a notification ClientFromContext(ctx) // to get a client in handler method This is essentially a rewrite of the server-side code. JSON-RPC processing code is now the same on both server and client side. Many minor issues were fixed in the process and there is a new test suite for JSON-RPC spec compliance (and non-compliance in some cases). List of behavior changes: - Method handlers are now called with a per-request context instead of a per-connection context. The context is canceled right after the method returns. - Subscription error channels are always closed when the connection ends. There is no need to also wait on the Notifier's Closed channel to detect whether the subscription has ended. - Client now omits "params" instead of sending "params": null when there are no arguments to a call. The previous behavior was not compliant with the spec. The server still accepts "params": null. - Floating point numbers are allowed as "id". The spec doesn't allow them, but we handle request "id" as json.RawMessage and guarantee that the same number will be sent back. - Logging is improved significantly. There is now a message at DEBUG level for each RPC call served.
* rpc: support returning nil pointer big.Ints (null)Péter Szilágyi2018-06-111-8/+0
|
* rpc: enforce the 128KB request limits on websockets tooPéter Szilágyi2018-03-131-15/+31
|
* rpc: support subscriptions under custom namespacesBas van Kervel2017-04-251-19/+17
|
* all: blidly swap out glog to our log15, logs need reworkPéter Szilágyi2017-02-231-4/+3
|
* all: gofmt -w -sFelix Lange2017-01-061-4/+4
|
* rpc: remove HexNumber, replace all uses with hexutil typesFelix Lange2016-12-201-2/+2
| | | | | This change couldn't be automated because HexNumber was used for numbers of all sizes.
* rpc: improve error messages for invalid argumentsFelix Lange2016-12-201-31/+32
| | | | The message now includes the index of the invalid arg.
* rpc: add new client, use it everywhereFelix Lange2016-07-231-28/+33
| | | | | | The new client implementation supports concurrent requests, subscriptions and replaces the various ad hoc RPC clients throughout go-ethereum.
* rpc: fix bad method error for batch requestsFelix Lange2016-07-231-8/+8
| | | | | | If a batch request contained an invalid method, the server would reply with a non-batch error response. Fix this by tracking an error for each batch element.
* cmd, console: split off the console into a reusable packagePéter Szilágyi2016-05-301-7/+7
|
* rpc: various fixes/enhancementsBas van Kervel2016-04-121-80/+85
| | | | | | | | rpc: be less restrictive on the request id rpc: improved documentation console: upgrade web3.js to version 0.16.0 rpc: cache http connections rpc: rename wsDomains parameter to wsOrigins
* rpc: add pub/sub supportBas van Kervel2016-04-021-10/+14
|
* cmd, common, node, rpc: move IPC into the node itselfPéter Szilágyi2016-02-041-1/+1
|
* rpc: fix success response encoding for null return valueFelix Lange2016-01-271-1/+1
| | | | | The "result" field of JSON-RPC 2.0 responses was omitted if the result was nil, causing exceptions in web3.js.
* rpc: migrated the RPC insterface to a new reflection based RPC layerBas van Kervel2016-01-261-0/+343
|
* CleanupTaylor Gerring2015-01-301-58/+0
|
* Move HTTP transport to sub package of RPCTaylor Gerring2015-01-281-9/+10
|
* Move GetRequestReply to EthereumApiTaylor Gerring2015-01-211-50/+0
| | | | Off of jsonWrapper
* cleanupTaylor Gerring2015-01-131-1/+1
|
* Add support for CodeAtTaylor Gerring2015-01-131-2/+6
|
* Added license headersTaylor Gerring2015-01-131-0/+16
|
* begin conversion to rpc over httpTaylor Gerring2015-01-131-0/+67
| | | | | Per specification at https://github.com/ethereum/wiki/wiki/Generic-JSON-RPC
* WIP RPC interfaceobscuren2014-10-211-0/+20