Block asserter will now work without being passed a genesis block identifier. Previously this was causing a nil pointer exception.
Update docs to mesh, add header forwarding
Docs update
We publicly renamed Rosetta to Mesh, this release contains all the docs updates for that rename
Header Forwarding
Why
In order to support some common use cases, Mesh servers need the ability to pass request headers through to the native nodes, and to return headers from native node requests back to the caller.
Use cases:
passing a client ID header to the nodes — this client ID shouldn't originate with the Mesh server since it may have many different callers, so it should be passed through to the native node requests
sticky session cookies — to support sticky sessions on native nodes, AWS uses cookies. Cookies are managed by the Cookie and Set-Cookie headers, which will need to be passed from the caller to the native node, and returned from the native node ALB to the caller
Solution
The HeaderForwarder type extracts headers from Mesh requests and forwards them to native node requests. It also watches potentially many native node responses and combines those headers to add them to a Mesh response.
To accomplish this, HeaderForwarder offers three different types of injection:
Server handler middleware — used to capture headers from the Mesh request for outgoing header forwarding, and to add native node response headers to the Mesh response
http.RoundTripper implementation — used to add outgoing headers to HTTP requests and capture incoming response headers
grpc.UnaryClientInterceptor implementation — used to add outgoing metadata to gRPC requests and capture incoming response metadata
A few key features:
opt-in — users of this library can choose to use or not use this feature
allows forwarding only specific headers
assigns every request a unique ID, which is used to associate headers from native node responses back to Mesh request/responses
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/coinbase/rosetta-sdk-go from 0.8.3 to 0.8.8.
Release notes
Sourced from github.com/coinbase/rosetta-sdk-go's releases.
Commits
945092d
add nil check (#510)dab4a57
feat: grpc header forwarding (#508)bad12fa
feat(header forwarding): add HeaderForwarder and plumbing (#507)348e01b
fix site ref (#506)85a8c5f
more mesh (#505)0e493d1
Update server.md (#504)14fc343
Add funcitionality to create a new generic asserter (#503)fa62d03
Add a new asserter client with ignoring rosetta spec validation. (#502)c8a1eee
Guarantee the order of transactions in the block endpoint (#489)f5e40aa
Bump github.com/tidwall/sjson from 1.2.4 to 1.2.5 (#430)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show