-
Notifications
You must be signed in to change notification settings - Fork 39
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
For a same verifier (based on its BLS private key), the address
in metadata and consensus could be different.
#1511
Comments
Lines 363 to 372 in 363b49f
The crux of this question is these code. As you can see, the bls_pub_keys variable is an argument of OverlordCrypto , and it is only used in OverlordCrypto .axon/core/consensus/src/util.rs Lines 34 to 47 in 363b49f
OverlordCrypto is employed for signing and verifying consensus message signatures. Due to Axon's utilization of aggregated signatures, some messages don't require broadcasting; an unicast to a peer suffices. To facilitate this, the consensus module must include the peer's P2P address. The peer's public key is stored in the network instead of an address, thus a secp256k1 public key serves as the address in this context.
|
Thanks for your comment. Let's just simplify things. axon/devtools/chain/specs/single_node/chain-spec.toml Lines 79 to 82 in 363b49f
axon/devtools/chain/config.toml Lines 5 to 6 in 363b49f
As you said above, is the following description right?
Please copy and modify the above content, you can just use lines to point the relation, instead of complex description. |
As I know, each node have at most 2 private keys: one is secp256k1 key and one is bls key.
|
Description
When initialize the chain data,
metadata.verifier_list
are loaded from thechain-spec.toml
.Click for details.
axon/common/config-parser/src/types/spec.rs
Line 32 in 363b49f
axon/protocol/src/types/primitive.rs
Line 301 in 363b49f
axon/protocol/src/types/primitive.rs
Lines 461 to 469 in 363b49f
And it is written into storage directly.
Click for details.
axon/core/run/src/lib.rs
Line 435 in 363b49f
axon/core/run/src/lib.rs
Lines 444 to 450 in 363b49f
axon/core/run/src/lib.rs
Line 493 in 363b49f
axon/core/executor/src/system_contract/mod.rs
Line 123 in 363b49f
axon/core/executor/src/system_contract/mod.rs
Lines 180 to 181 in 363b49f
But when initialize the crypto data for consensus, the
pub_key
is replaced andaddress
is abandoned.axon/core/run/src/lib.rs
Lines 363 to 372 in 363b49f
🤔 The following steps make me confused deeply.
address
from originalpub_key
.pub_key
from originalbls_pub_key
.address
is abandoned.So, why users have to provide the
addresses
?p.s.: I checked, the logic is same as the logic before refactor axon commands line. (ref: previous version).
Back to the metadata contract, it uses the original
address
which is stored in storage.axon/core/executor/src/system_contract/metadata/mod.rs
Lines 63 to 69 in 363b49f
axon/core/executor/src/system_contract/metadata/handle.rs
Lines 44 to 47 in 363b49f
Question
What does it mean? Is is a bug?
If there is an address stored in metadata, but it could not be derived from its corresponding public key, what would happen?
The text was updated successfully, but these errors were encountered: