Skip to content

Commit 989115a

Browse files
authored
feat(net): add codeVersion for HelloMessage (#5584)
1 parent c4d7635 commit 989115a

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

framework/src/main/java/org/tron/core/net/message/handshake/HelloMessage.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.tron.core.net.message.MessageTypes;
1212
import org.tron.core.net.message.TronMessage;
1313
import org.tron.p2p.discover.Node;
14+
import org.tron.program.Version;
1415
import org.tron.protos.Discover.Endpoint;
1516
import org.tron.protos.Protocol;
1617
import org.tron.protos.Protocol.HelloMessage.Builder;
@@ -61,6 +62,7 @@ public HelloMessage(Node from, long timestamp, ChainBaseManager chainBaseManager
6162
builder.setNodeType(chainBaseManager.getNodeType().getType());
6263
builder.setLowestBlockNum(chainBaseManager.isLiteNode()
6364
? chainBaseManager.getLowestBlockNum() : 0);
65+
builder.setCodeVersion(ByteString.copyFrom(Version.getVersion().getBytes()));
6466

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

129131
ByteString address = helloMessage.getAddress();
130-
if (address != null && !address.isEmpty()) {
132+
if (!address.isEmpty()) {
131133
builder.append("address:")
132134
.append(StringUtil.encode58Check(address.toByteArray())).append("\n");
133135
}
134136

135137
ByteString signature = helloMessage.getSignature();
136-
if (signature != null && !signature.isEmpty()) {
138+
if (!signature.isEmpty()) {
137139
builder.append("signature:")
138140
.append(signature.toByteArray().length).append("\n");
139141
}
140142

143+
ByteString codeVersion = helloMessage.getCodeVersion();
144+
if (!codeVersion.isEmpty()) {
145+
builder.append("codeVersion:")
146+
.append(new String(codeVersion.toByteArray())).append("\n");
147+
}
148+
141149
return builder.toString();
142150
}
143151

framework/src/test/java/org/tron/core/net/services/HandShakeServiceTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.tron.p2p.connection.Channel;
3939
import org.tron.p2p.discover.Node;
4040
import org.tron.p2p.utils.NetUtil;
41+
import org.tron.program.Version;
4142
import org.tron.protos.Discover.Endpoint;
4243
import org.tron.protos.Protocol;
4344
import org.tron.protos.Protocol.HelloMessage.Builder;
@@ -99,6 +100,9 @@ public void testOkHelloMessage()
99100
Node node = new Node(NetUtil.getNodeId(), a1.getAddress().getHostAddress(), null, a1.getPort());
100101
HelloMessage helloMessage = new HelloMessage(node, System.currentTimeMillis(),
101102
ChainBaseManager.getChainBaseManager());
103+
104+
Assert.assertEquals(Version.getVersion(),
105+
new String(helloMessage.getHelloMessage().getCodeVersion().toByteArray()));
102106
method.invoke(p2pEventHandler, peer, helloMessage.getSendBytes());
103107

104108
//dup hello message

protocol/src/main/protos/core/Tron.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,7 @@ message HelloMessage {
626626
bytes signature = 8;
627627
int32 nodeType = 9;
628628
int64 lowestBlockNum = 10;
629+
bytes codeVersion = 11;
629630
}
630631

631632
message InternalTransaction {

0 commit comments

Comments
 (0)