-
Notifications
You must be signed in to change notification settings - Fork 122
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
Interchaintest should have Penumbra support (via pclientd
)
#644
Comments
For context, here's a request made from the host context to a Tendermint RPC container:
The validator delegations are expected, but we also expect some |
Added in the last round of @jtieri's changes, see for example: diff --git a/chain/penumbra/penumbra_app_node.go b/chain/penumbra/penumbra_app_node.go
index 792ff46..a54d63a 100644
--- a/chain/penumbra/penumbra_app_node.go
+++ b/chain/penumbra/penumbra_app_node.go
@@ -256,31 +256,18 @@ func (p *PenumbraAppNode) GetAddress(ctx context.Context, keyName string) ([]byt
}
func (p *PenumbraAppNode) GetBalance(ctx context.Context, keyName string) (int64, error) {
- fmt.Println("Entering GetBalance function from app perspective...")
keyPath := filepath.Join(p.HomeDir(), "keys", keyName)
- // TODO Figure out the container's address, so we can use pcli to look up balance
- // as a sanity check. "localhost" is not the right network context.
- // pdUrl := fmt.Sprintf("http://%v", p.hostGRPCPort)
- pdUrl := fmt.Sprintf("http://localhost:8080")
+ pdUrl := fmt.Sprintf("http://%s:8080", p.HostName()) |
Check it out: +// translateHiAndLo takes the high and low order bytes and decodes the two uint64 values into the single int128 value
+// they represent. Since Go does not support native uint128 we make use of the big.Int type.
+// see: https://github.com/penumbra-zone/penumbra/blob/4d175986f385e00638328c64d729091d45eb042a/crates/core/crypto/src/asset/amount.rs#L220-L240
+func translateHiAndLo(hi, lo uint64) *big.Int {
+ hiBig := big.NewInt(0).SetUint64(hi)
+ loBig := big.NewInt(0).SetUint64(lo)
+
+ // Shift hi 8 bytes to the left
+ hiBig.Lsh(hiBig, 64)
+
+ // Add the lower order bytes
+ return big.NewInt(0).Add(hiBig, loBig)
+}
+ We haven't actually confirmed this works, due to #658, but we're optimistic. |
Resolved: the plan is to use the Cosmos SDK BigInt type, and use that throughout Interchaintest. @jtieri is working on a PR to implement, which should be ready to merge in the next few days. On top of that, we'll rebase the existing Penumbra integration work, and update to the latest protos. |
Here's the PR for the bigint fix: #679 |
We've encountered a blocker in that the existing
|
The first phase of tl;dr is that the interfaces used in Edit: we have figured out a workaround within the existing design where we will just scope all test user accounts to one specific |
waiting for a new release from their team |
pclientd
)
Got changes back; there's a LOT there. @jtieri is wrapping up the changes. Merge is gonna suuuuuck. Stay tuned. @Reecepbcups generously volunteered to review it. |
We're blocked on a timeout issue. Applied the latest update hoping that would solve it...but no. Waiting for Penumbra team to investigate. Once that's sorted, @Reecepbcups will take a look (as mentioned upthread). |
Iceboxing. |
Completed! |
There's ongoing work to integrate Penumbra into interchaintest. This issue tracks outstanding obstacles, to coordinate changes between interchaintest, upstream penumbra, and potentially the relayer.
pd
, specifying the target Tendermint RPC address,--tendermint-addr
, should have anhttp://
prefix.pd
was rather silently failing when this option was not set correctly. Patched upstream via fix(pd): ensure tendermint-addr is full url penumbra-zone/penumbra#2719BalanceByAddressRequest
. Helpful constraints (which should probably be added to Penumbra's proto docs):BalanceByAddressRequest
returns a stream, we must handle it as a special case from the other RPC calls. Therefore:upenumbra
allocations are not making it into the genesis file served by Tendermint within interchaintest.pcli keys import phrase
to pass the seed phrase on stdin, rather than as a CLI arg. This will ship in 0.56.0, see related breaking change in pcli: import seed phrase from stdin penumbra-zone/penumbra#2733AssetId
s on the balance request, as per Allow filtering view service balance queries by asset penumbra-zone/penumbra#2768pcli
testing to validate assumptions about what data should be returned from the rpc method calls.v0.55.0
v0.57.0
- Balances doesn't work, we need a fix: New Balances RPC request returns empty results penumbra-zone/penumbra#2894v0.58.0
v0.59.0
v0.60.0
optional
proto3
fields: Remove optional fields throughout protos penumbra-zone/penumbra#2933We'll continue to update this tracking ticket as we make progress.
The text was updated successfully, but these errors were encountered: