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

feat(net): add column codeVersion to HelloMessage #5584

Merged
merged 2 commits into from
Dec 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.tron.core.net.message.MessageTypes;
import org.tron.core.net.message.TronMessage;
import org.tron.p2p.discover.Node;
import org.tron.program.Version;
import org.tron.protos.Discover.Endpoint;
import org.tron.protos.Protocol;
import org.tron.protos.Protocol.HelloMessage.Builder;
Expand Down Expand Up @@ -61,6 +62,7 @@ public HelloMessage(Node from, long timestamp, ChainBaseManager chainBaseManager
builder.setNodeType(chainBaseManager.getNodeType().getType());
builder.setLowestBlockNum(chainBaseManager.isLiteNode()
? chainBaseManager.getLowestBlockNum() : 0);
builder.setCodeVersion(ByteString.copyFrom(Version.getVersion().getBytes()));

this.helloMessage = builder.build();
this.type = MessageTypes.P2P_HELLO.asByte();
Expand Down Expand Up @@ -127,17 +129,23 @@ public String toString() {
.append("lowestBlockNum: ").append(helloMessage.getLowestBlockNum()).append("\n");

ByteString address = helloMessage.getAddress();
if (address != null && !address.isEmpty()) {
if (!address.isEmpty()) {
builder.append("address:")
.append(StringUtil.encode58Check(address.toByteArray())).append("\n");
}

ByteString signature = helloMessage.getSignature();
if (signature != null && !signature.isEmpty()) {
if (!signature.isEmpty()) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this field has some relationship with the codeVersion?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this field has some relationship with the codeVersion?

No, only code optimization.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

933756

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ma ja sam na neki način i u teretani i ja Pa Pa

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zakačite stavke ostave kako ne bi istekle nakon 1 časa

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prevucite stavke iz međuspremnika da biste ih izbrisali

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🇦🇸🇦🇩🇦🇩Fg0x1cfa5e643a3436d94732f65561f8c86e2ea910beZakačite stavke ostave kako ne bi istekle nakon 1 časa

builder.append("signature:")
.append(signature.toByteArray().length).append("\n");
}

ByteString codeVersion = helloMessage.getCodeVersion();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this codeVersion be null when received a HelloMessage from a node with previous version ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every column in proto has default value. codeVersion has default value byte[0], not null.

if (!codeVersion.isEmpty()) {
builder.append("codeVersion:")
.append(new String(codeVersion.toByteArray())).append("\n");
}

return builder.toString();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import org.tron.p2p.connection.Channel;
import org.tron.p2p.discover.Node;
import org.tron.p2p.utils.NetUtil;
import org.tron.program.Version;
import org.tron.protos.Discover.Endpoint;
import org.tron.protos.Protocol;
import org.tron.protos.Protocol.HelloMessage.Builder;
Expand Down Expand Up @@ -99,6 +100,9 @@ public void testOkHelloMessage()
Node node = new Node(NetUtil.getNodeId(), a1.getAddress().getHostAddress(), null, a1.getPort());
HelloMessage helloMessage = new HelloMessage(node, System.currentTimeMillis(),
ChainBaseManager.getChainBaseManager());

Assert.assertEquals(Version.getVersion(),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


new String(helloMessage.getHelloMessage().getCodeVersion().toByteArray()));
method.invoke(p2pEventHandler, peer, helloMessage.getSendBytes());

//dup hello message
Expand Down
1 change: 1 addition & 0 deletions protocol/src/main/protos/core/Tron.proto
Original file line number Diff line number Diff line change
Expand Up @@ -626,6 +626,7 @@ message HelloMessage {
bytes signature = 8;
int32 nodeType = 9;
int64 lowestBlockNum = 10;
bytes codeVersion = 11;
}

message InternalTransaction {
Expand Down