Skip to content

Commit

Permalink
Use agent for identity in delegation gossip
Browse files Browse the repository at this point in the history
  • Loading branch information
Hellblazer committed Apr 26, 2023
1 parent a6097bc commit f8e9ff8
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 17 deletions.
2 changes: 1 addition & 1 deletion grpc/src/main/proto/demesne.proto
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ message DelegationUpdate {
}

message Delegate {
int64 view = 1;
utils.Digeste context = 1;
utils.Digeste delegator = 2;
utils.Digeste delegate = 3;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
*
*/
public class Enclave implements RouterSupplier {
interface RoutingClientIdentity extends ClientIdentity {
public interface RoutingClientIdentity extends ClientIdentity {
Digest getAgent();
}

Expand Down
17 changes: 9 additions & 8 deletions model/src/main/java/com/salesforce/apollo/model/SubDomain.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

import java.nio.file.Path;
import java.time.Duration;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ScheduledFuture;
Expand All @@ -27,6 +29,7 @@
import com.salesfoce.apollo.demesne.proto.SignedDelegate;
import com.salesfoce.apollo.utils.proto.Biff;
import com.salesfoce.apollo.utils.proto.Digeste;
import com.salesforce.apollo.archipelago.Enclave.RoutingClientIdentity;
import com.salesforce.apollo.archipelago.RouterImpl.CommonCommunications;
import com.salesforce.apollo.choam.Parameters.Builder;
import com.salesforce.apollo.choam.Parameters.RuntimeParameters;
Expand All @@ -50,19 +53,18 @@
*
*/
public class SubDomain extends Domain {
private static final String DELEGATES_MAP_TEMPLATE = "delegates-%s";
private static final String DELEGATIONS_MAP_TEMPLATE = "delegations-%s";
private final static Logger log = LoggerFactory.getLogger(SubDomain.class);
private static final String DELEGATES_MAP_TEMPLATE = "delegates-%s";
private final static Logger log = LoggerFactory.getLogger(SubDomain.class);

private final MVMap<Digeste, SignedDelegate> delegates;
@SuppressWarnings("unused")
private final MVMap<Digeste, Digest> delegations;
private final Map<Digeste, Digest> delegations = new HashMap<>();
private final double fpr;
private final Duration gossipInterval;
private final int maxTransfer;
private final RingCommunications<Member, Delegation> ring;
private ScheduledFuture<?> scheduled;
private final AtomicBoolean started = new AtomicBoolean();
private final AtomicBoolean started = new AtomicBoolean();
private final MVStore store;

public SubDomain(ControlledIdentifierMember member, Builder params, Path checkpointBaseDir,
Expand All @@ -87,12 +89,11 @@ public SubDomain(ControlledIdentifierMember member, Builder prm, String dbURL, P
builder.setFileName(checkpointBaseDir.resolve(identifier).toFile());
store = builder.build();
delegates = store.openMap(DELEGATES_MAP_TEMPLATE.formatted(identifier));
delegations = store.openMap(DELEGATIONS_MAP_TEMPLATE.formatted(identifier));
CommonCommunications<Delegation, ?> comms = params.communications()
.create(member, params.context().getId(), delegation(),
"delegates",
r -> new DelegationServer(params.communications()
.getClientIdentityProvider(),
r -> new DelegationServer((RoutingClientIdentity) params.communications()
.getClientIdentityProvider(),
r, null));
ring = new RingCommunications<Member, Delegation>(params.context(), member, comms, params.exec());
this.gossipInterval = gossipInterval;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
import com.salesfoce.apollo.demesne.proto.DelegationGrpc.DelegationImplBase;
import com.salesfoce.apollo.demesne.proto.DelegationUpdate;
import com.salesfoce.apollo.utils.proto.Biff;
import com.salesforce.apollo.archipelago.Enclave.RoutingClientIdentity;
import com.salesforce.apollo.archipelago.RoutableService;
import com.salesforce.apollo.protocols.ClientIdentity;

import io.grpc.stub.StreamObserver;

Expand All @@ -21,13 +21,11 @@
*
*/
public class DelegationServer extends DelegationImplBase {

private final ClientIdentity identity;

private final RoutingClientIdentity identity;
private final OuterServerMetrics metrics;
private final RoutableService<DelegationService> router;

public DelegationServer(ClientIdentity clientIdentity, RoutableService<DelegationService> router,
public DelegationServer(RoutingClientIdentity clientIdentity, RoutableService<DelegationService> router,
OuterServerMetrics metrics) {
this.router = router;
this.identity = clientIdentity;
Expand All @@ -41,7 +39,7 @@ public void gossip(Biff request, StreamObserver<DelegationUpdate> responseObserv
metrics.inboundBandwidth().mark(request.getSerializedSize());
metrics.inboundGossip().mark(request.getSerializedSize());
}
var from = identity.getFrom();
var from = identity.getAgent();
router.evaluate(responseObserver, delegation -> {
try {
var update = delegation.gossip(request, from);
Expand All @@ -67,7 +65,7 @@ public void update(DelegationUpdate request, StreamObserver<Empty> responseObser
metrics.inboundBandwidth().mark(request.getSerializedSize());
metrics.inboundUpdate().mark(request.getSerializedSize());
}
var from = identity.getFrom();
var from = identity.getAgent();
router.evaluate(responseObserver, delegation -> {
try {
delegation.update(request, from);
Expand Down

0 comments on commit f8e9ff8

Please sign in to comment.