Skip to content

Commit 2360926

Browse files
authored
Merge pull request #359 from tronprotocol/feature/ls_debug1
Feature/ls debug1
2 parents 24fa204 + 2f9812f commit 2360926

File tree

3 files changed

+64
-13
lines changed

3 files changed

+64
-13
lines changed

src/main/java/org/tron/core/capsule/BlockCapsule.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,8 @@ public Sha256Hash calcMerkleRoot() {
237237

238238
public void setMerkleRoot() {
239239
BlockHeader.raw blockHeaderRaw =
240-
this.block.getBlockHeader().getRawData().toBuilder()
241-
.setTxTrieRoot(calcMerkleRoot().getByteString()).build();
240+
this.block.getBlockHeader().getRawData().toBuilder()
241+
.setTxTrieRoot(calcMerkleRoot().getByteString()).build();
242242

243243
this.block = this.block.toBuilder().setBlockHeader(
244244
this.block.getBlockHeader().toBuilder().setRawData(blockHeaderRaw)).build();
@@ -249,6 +249,11 @@ public Sha256Hash getMerkleRoot() {
249249
return Sha256Hash.wrap(this.block.getBlockHeader().getRawData().getTxTrieRoot());
250250
}
251251

252+
public ByteString getWitnessAddress(){
253+
unPack();
254+
return this.block.getBlockHeader().getRawData().getWitnessAddress();
255+
}
256+
252257

253258
private void pack() {
254259
if (data == null) {

src/main/java/org/tron/core/capsule/WitnessCapsule.java

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,6 @@ public Witness getInstance() {
8282
return this.witness;
8383
}
8484

85-
public long getLatestBlockNum() {
86-
return this.witness.getLatestBlockNum();
87-
}
88-
8985
public void setPubKey(final ByteString pubKey) {
9086
this.witness = this.witness.toBuilder().setPubKey(pubKey).build();
9187
}
@@ -98,6 +94,38 @@ public void setVoteCount(final long voteCount) {
9894
this.witness = this.witness.toBuilder().setVoteCount(voteCount).build();
9995
}
10096

97+
public void setTotalProduced(final long totalProduced) {
98+
this.witness = this.witness.toBuilder().setTotalProduced(totalProduced).build();
99+
}
100+
101+
public long getTotalProduced() {
102+
return this.witness.getTotalProduced();
103+
}
104+
105+
public void setTotalMissed(final long totalMissed) {
106+
this.witness = this.witness.toBuilder().setTotalMissed(totalMissed).build();
107+
}
108+
109+
public long getTotalMissed() {
110+
return this.witness.getTotalMissed();
111+
}
112+
113+
public void setLatestBlockNum(final long latestBlockNum) {
114+
this.witness = this.witness.toBuilder().setLatestBlockNum(latestBlockNum).build();
115+
}
116+
117+
public long getLatestBlockNum() {
118+
return this.witness.getLatestBlockNum();
119+
}
120+
121+
public void setLatestSlotNum(final long latestSlotNum) {
122+
this.witness = this.witness.toBuilder().setLatestSlotNum(latestSlotNum).build();
123+
}
124+
125+
public long getLatestSlotNum() {
126+
return this.witness.getLatestSlotNum();
127+
}
128+
101129
public void setIsJobs(final boolean isJobs) {
102130
this.witness = this.witness.toBuilder().setIsJobs(isJobs).build();
103131
}

src/main/java/org/tron/core/db/Manager.java

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,21 @@ public void pushBlock(final BlockCapsule block)
595595
}
596596

597597
public void updateDynamicProperties(BlockCapsule block) {
598+
long slot = 1;
599+
if (block.getNum() != 1){
600+
slot = getSlotAtTime(block.getTimeStamp());
601+
}
602+
for (int i = 1; i < slot; ++i){
603+
if (!getScheduledWitness(i).equals(block.getWitnessAddress())){
604+
WitnessCapsule w = this.witnessStore.get(createDbKey(getScheduledWitness(i)));
605+
w.setTotalMissed(w.getTotalMissed()+1);
606+
this.witnessStore.put(w.createDbKey(), w);
607+
logger.info("{} miss a block. totalMissed = {}",
608+
w.createReadableString(), w.getTotalMissed());
609+
}
610+
}
598611
this.head = block;
612+
logger.info("update head, num = {}", block.getNum());
599613
this.dynamicPropertiesStore
600614
.saveLatestBlockHeaderHash(block.getBlockId().getByteString());
601615
this.dynamicPropertiesStore.saveLatestBlockHeaderNumber(block.getNum());
@@ -885,30 +899,34 @@ private void processMaintenance(BlockCapsule block) {
885899

886900
/**
887901
* @param block the block update signed witness. set witness who signed block the 1. the latest
888-
* block num 2. pay the trx to witness. 3. (TODO)the latest slot num.
902+
* block num 2. pay the trx to witness. 3. the latest slot num.
889903
*/
890904

891905
public void updateSignedWitness(BlockCapsule block) {
892906
//TODO: add verification
893907
WitnessCapsule witnessCapsule = witnessStore
894908
.get(block.getInstance().getBlockHeader().getRawData().getWitnessAddress().toByteArray());
895-
long latestSlotNum = 0;
896-
witnessCapsule.getInstance().toBuilder().setLatestBlockNum(block.getNum())
897-
.setLatestSlotNum(latestSlotNum)
898-
.build();
899-
AccountCapsule sun = accountStore.getSun();
909+
witnessCapsule.setTotalProduced(witnessCapsule.getTotalProduced()+1);
910+
witnessCapsule.setLatestBlockNum(block.getNum());
911+
witnessCapsule.setLatestSlotNum(getAbSlotAtTime(block.getTimeStamp()));
912+
913+
this.getWitnessStore().put(witnessCapsule.getAddress().toByteArray(),witnessCapsule);
900914

915+
AccountCapsule sun = accountStore.getSun();
901916
try {
902917
adjustBalance(sun.getAddress().toByteArray(), -WITNESS_PAY_PER_BLOCK);
903918
} catch (BalanceInsufficientException e) {
904-
919+
logger.debug(e.getMessage(), e);
905920
}
906921
try {
907922
adjustBalance(witnessCapsule.getAddress().toByteArray(), WITNESS_PAY_PER_BLOCK);
908923
} catch (BalanceInsufficientException e) {
909924
logger.debug(e.getMessage(), e);
910925
}
911926

927+
logger.info("updateSignedWitness. witness address:{}, blockNum:{}, totalProduced:{}",
928+
witnessCapsule.createReadableString(), block.getNum(), witnessCapsule.getTotalProduced());
929+
912930
}
913931

914932
private long blockInterval() {

0 commit comments

Comments
 (0)