Skip to content

Commit 78e86c8

Browse files
Merge pull request #5 from AllanCapistrano/feat/disturbing-node-malicious-conduct
Feat/disturbing node malicious conduct
2 parents fad90b7 + d68e57a commit 78e86c8

File tree

4 files changed

+30
-27
lines changed

4 files changed

+30
-27
lines changed

src/main/java/node/type/models/NodeType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ public void start() {
7777
new Disturbing(
7878
ledgerConnector,
7979
this.idManager.getID(),
80-
this.group.getGroup()
80+
this.group.getGroup(),
81+
this.honestyRate
8182
);
8283
this.setType(ConductType.DISTURBING);
8384
logger.info("Initializing a Disturbing Node.");

src/main/java/node/type/models/conduct/Disturbing.java

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import dlt.client.tangle.hornet.model.transactions.IndexTransaction;
55
import dlt.client.tangle.hornet.model.transactions.Transaction;
66
import dlt.client.tangle.hornet.model.transactions.reputation.Evaluation;
7+
import java.util.Random;
78
import java.util.logging.Logger;
89
import node.type.models.enums.ConductType;
910
import node.type.models.tangle.LedgerConnector;
@@ -12,10 +13,12 @@
1213
* Nó do tipo perturbador.
1314
*
1415
* @author Allan Capistrano
15-
* @version 1.1.0
16+
* @version 1.2.0
1617
*/
1718
public class Disturbing extends Conduct {
1819

20+
private final float honestyRate;
21+
1922
private static final Logger logger = Logger.getLogger(
2023
Disturbing.class.getName()
2124
);
@@ -27,35 +30,30 @@ public class Disturbing extends Conduct {
2730
* Tangle.
2831
* @param id String - Identificador único do nó.
2932
*/
30-
public Disturbing(LedgerConnector ledgerConnector, String id, String group) {
33+
public Disturbing(
34+
LedgerConnector ledgerConnector,
35+
String id,
36+
String group,
37+
float honestyRate
38+
) {
3139
super(ledgerConnector, id, group);
3240
this.setConductType(ConductType.HONEST);
41+
this.honestyRate = honestyRate;
3342
}
3443

3544
/**
3645
* Define o comportamento do nó perturbador.
3746
*/
3847
@Override
3948
public void defineConduct() {
40-
this.changeConduct();
41-
}
42-
43-
/**
44-
* Altera a conduta do nó:
45-
* Se ele for honesto -> muda para malicioso;
46-
* Se ele for malicioso -> muda para honesto.
47-
*/
48-
private void changeConduct() {
49-
this.setConductType(
50-
this.getConductType() == ConductType.HONEST
51-
? ConductType.MALICIOUS
52-
: ConductType.HONEST
53-
);
49+
/* Gerando um número aleatório entre 0 e 100. */
50+
float randomNumber = new Random().nextFloat() * 100;
5451

55-
logger.info(
56-
"Changing Disturbing node behavior to: " +
57-
this.getConductType().toString()
58-
);
52+
if (randomNumber > this.honestyRate) {
53+
this.setConductType(ConductType.MALICIOUS);
54+
} else {
55+
this.setConductType(ConductType.HONEST);
56+
}
5957
}
6058

6159
/**
@@ -90,12 +88,12 @@ public void evaluateServiceProvider(
9088
logger.info("[" + serviceProviderId + "] Provided the service.");
9189
break;
9290
default:
93-
logger.warning("Unable to evaluate the device");
91+
logger.warning("Unable to evaluate the service provider.");
9492
break;
9593
}
9694
break;
9795
case MALICIOUS:
98-
logger.info("Did not provide the service.");
96+
logger.info("[" + serviceProviderId + "] Did not provide the service.");
9997
/* Alterando o valor da avaliação para 'serviço não prestado'. */
10098
serviceEvaluation = 0;
10199
value = 0;
@@ -119,4 +117,8 @@ public void evaluateServiceProvider(
119117
this.getLedgerConnector()
120118
.put(new IndexTransaction(serviceProviderId, transactionEvaluation));
121119
}
120+
121+
public float getHonestyRate() {
122+
return honestyRate;
123+
}
122124
}

src/main/java/node/type/models/conduct/Honest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public void evaluateServiceProvider(
6565
logger.info("[" + serviceProviderId + "] Provided the service.");
6666
break;
6767
default:
68-
logger.warning("Unable to evaluate the device");
68+
logger.warning("Unable to evaluate the service provider.");
6969
break;
7070
}
7171

src/main/java/node/type/models/conduct/Malicious.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void defineConduct() {
4949
/* Gerando um número aleatório entre 0 e 100. */
5050
float randomNumber = new Random().nextFloat() * 100;
5151

52-
if (randomNumber > honestyRate) {
52+
if (randomNumber > this.honestyRate) {
5353
this.setConductType(ConductType.MALICIOUS);
5454
} else {
5555
this.setConductType(ConductType.HONEST);
@@ -88,12 +88,12 @@ public void evaluateServiceProvider(
8888
logger.info("[" + serviceProviderId + "] Provided the service.");
8989
break;
9090
default:
91-
logger.warning("Unable to evaluate the device");
91+
logger.warning("Unable to evaluate the service provider.");
9292
break;
9393
}
9494
break;
9595
case MALICIOUS:
96-
logger.info("Did not provide the service.");
96+
logger.info("[" + serviceProviderId + "] Did not provide the service.");
9797
/* Alterando o valor da avaliação para 'serviço não prestado'. */
9898
serviceEvaluation = 0;
9999
value = 0;

0 commit comments

Comments
 (0)