One embodiment provides a system that facilitates distributed consensus in a content centric network. During operation, the system generates, by a coordinator for a plurality of nodes, a first interest that indicates a request to approve a proposed value for a variable. In response to receiving a positive acknowledgment of the first interest from a majority of the nodes, the coordinator generates a second interest that indicates a request to accept the proposed value. A name for the first interest and a name for the second interest include an identifier of the variable and a round number. A payload of the first interest and a payload of the second interest include the proposed value. In response to receiving a positive acknowledgement of the second interest from the majority of the nodes, the system generates a notification indicating that an agreed-upon value for the variable is the proposed value.
-
A computer system for facilitating distributed consensus in a content centric network, the system comprising:
a processor; and
a storage device storing instructions that when executed by the processor cause the processor to perform a method, the method comprising:
generating a first interest indicating a request to approve a proposed value for a variable, wherein the computer system is a coordinator for a plurality of nodes;
in response to receiving a positive acknowledgment of the first interest from a majority of the nodes, generating a second interest indicating a request to accept the proposed value, wherein a name for the first interest and a name for the second interest include an identifier of the variable and a round number, and wherein a payload of the first interest and a payload of the second interest include the proposed value; and
in response to receiving a positive acknowledgement of the second interest from the majority of the nodes, generating a notification indicating that an agreed-upon value for the variable is the proposed value.
-
The computer system of claim 1, wherein the method further comprises:
in response to receiving a third interest indicating a request to read the agreed-upon value for the variable, wherein a name for the third interest includes the variable identifier and the round number, generating a content object which indicates the round number and one or more of:
the agreed-upon value for the variable;
an iteration number corresponding to the round number;
a negative acknowledgment if the agreed-upon value for the variable is indeterminate; and
a no-operation indicator if no agreed-upon value for the variable exists.
-
The computer system of claim 2, wherein the positive acknowledgement of the second interest is transmitted to the coordinator by the majority of the nodes,
wherein the notification is generated by the majority of the nodes and further transmitted to a learning device, which transmits the notification as a fourth interest to one or more systems interested in the agreed-upon value for the variable.
-
The computer system of claim 3, wherein the name for the first interest, the name for the second interest, the name for the third interest, and the name for the fourth interest further include one or more of:
a routable prefix for one of the majority of the nodes;
an identifier for a consensus group to which the one of the majority of the nodes belongs, wherein the plurality of nodes belong to the consensus group;
an indicator of a logical program associated with the variable identifier; and
an iteration number corresponding to the round number.
-
The computer system of claim 3, wherein the name for the first interest indicates the request to approve the proposed value for the variable,
wherein the name for the second interest indicates the request to accept the proposed value,
wherein the name for the third interest indicates the request to read the agreed-upon value, and
wherein the name for the fourth interest indicates the notification to allow a receiving device to learn the agreed-upon value.
-
The computer system of claim 1, wherein the method further comprises:
transmitting, by the coordinator, the first interest to a multicast group comprised of the majority of the nodes; and
transmitting, by the coordinator, the second interest to the multicast group,
wherein the name for the first interest and the name for the second interest further include one or more of:
an identifier for a consensus group to which the one of the majority of the nodes belongs, wherein the plurality of nodes belong to the consensus group, wherein the consensus group identifier is the most general level name component; and
an indicator of a group version to which the majority of the nodes belongs,
wherein the payload of the first interest further includes a routable prefix of the coordinator to be used by a node in response to the first interest, and
wherein the payload of the second interest further includes a routable prefix of a target to be used by a node in response to the second interest.
-
The computer system of claim 1, wherein the proposed value is one or more of:
a link to a piece of content which describes a current state of an algorithm;
a link to a manifest, which is a content object indicating a collection of other content objects; and
the manifest embedded in the proposed value.
- The computer system of claim 1, wherein a response by one of the majority of the nodes to an interest is a content object with a same name as the name for the interest, wherein the content object has a lifetime set to a small or a zero value.
-
A computer system for facilitating distributed consensus in a content centric network, the system comprising:
a processor; and
a storage device storing instructions that when executed by the processor cause the processor to perform a method, the method comprising:
receiving a first interest indicating a request to approve a proposed value for a variable, wherein the first interest is received from a coordinator for a plurality of nodes by a node;
in response to agreeing with the proposed value, transmitting a positive acknowledgement of the first interest to the coordinator;
receiving a second interest indicating a request to accept the proposed value, wherein a name for the first interest and a name for the second interest include an identifier of the variable and a round number, and wherein a payload of the first interest and a payload of the second interest include the proposed value; and
in response to accepting the proposed value, transmitting a positive acknowledgement of the second interest to the coordinator.
-
The computer system of claim 9, wherein in response to accepting the proposed value, the method further comprises:
transmitting a notification indicating that an agreed-upon value for the variable is the proposed value to a learning device, which transmits the notification as a third interest to one or more systems interested in the agreed-upon value for the variable.
-
The computer system of claim 9, wherein the method further comprises:
in response to not agreeing with the proposed value, transmitting a negative acknowledgment of the first interest to the coordinator, wherein the negative acknowledgment includes a previous value for the variable corresponding to a previous round number.
-
The computer system of claim 9, wherein the name for the first interest, the name for the second interest, and the name for the third interest further include one or more of:
a routable prefix for one of the majority of the nodes;
an identifier for a consensus group to which the one of the majority of the nodes belongs, wherein the plurality of nodes belong to the consensus group;
an indicator of a logical program associated with the variable identifier; and
an iteration number corresponding to the round number; and
wherein the name for the first interest indicates the request to approve the proposed value for the variable,
wherein the name for the second interest indicates the request to accept the proposed value, and
wherein the name for the third interest indicates the notification to allow a receiving device to learn the agreed-upon value.
-
A computer-implemented method for facilitating distributed consensus in a content centric network, the method comprising:
generating a first interest indicating a request to approve a proposed value for a variable, wherein the computer system is a coordinator for a plurality of nodes;
in response to receiving a positive acknowledgment of the first interest from a majority of the nodes, generating a second interest indicating a request to accept the proposed value, wherein a name for the first interest and a name for the second interest include an identifier of the variable and a round number, and wherein a payload of the first interest and a payload of the second interest include the proposed value; and
in response to receiving a positive acknowledgement of the second interest from the majority of the nodes, generating a notification indicating that an agreed-upon value for the variable is the proposed value.
-
The method of claim 13, further comprising:
in response to receiving a third interest indicating a request to read the agreed-upon value for the variable, wherein a name for the third interest includes the variable identifier and the round number, generating a content object which indicates the round number and one or more of:
the agreed-upon value for the variable;
an iteration number corresponding to the round number;
a negative acknowledgment if the agreed-upon value for the variable is indeterminate; and
a no-operation indicator if no agreed-upon value for the variable exists.
-
The method of claim 14, wherein the positive acknowledgement of the second interest is transmitted to the coordinator by the majority of the nodes,
wherein the notification is generated by the majority of the nodes and further transmitted to a learning device, which transmits the notification as a fourth interest to one or more systems interested in the agreed-upon value for the variable.
-
The method of claim 15, wherein the name for the first interest, the name for the second interest, the name for the third interest, and the name for the fourth interest further include one or more of:
a routable prefix for one of the majority of the nodes;
an identifier for a consensus group to which the one of the majority of the nodes belongs, wherein the plurality of nodes belong to the consensus group;
an indicator of a logical program associated with the variable identifier; and
an iteration number corresponding to the round number.
-
The method of claim 16, wherein the name for the first interest indicates the request to approve the proposed value for the variable,
wherein the name for the second interest indicates the request to accept the proposed value,
wherein the name for the third interest indicates the request to read the agreed-upon value, and
wherein the name for the fourth interest indicates the notification to allow a receiving device to learn the agreed-upon value.
-
The method of claim 13, further comprising:
transmitting, by the coordinator, the first interest to a multicast group comprised of the majority of the nodes; and
transmitting, by the coordinator, the second interest to the multicast group,
wherein the name for the first interest and the name for the second interest further include one or more of:
an identifier for a consensus group to which the one of the majority of the nodes belongs, wherein the plurality of nodes belong to the consensus group, wherein the consensus group identifier is the most general level name component; and
an indicator of a group version to which the majority of the nodes belongs,
wherein the payload of the first interest further includes a routable prefix of the coordinator to be used by a node in response to the first interest, and
wherein the payload of the second interest further includes a routable prefix of a target to be used by a node in response to the second interest.
-
The method of claim 13, wherein the proposed value is one or more of:
a link to a piece of content which describes a current state of an algorithm;
a link to a manifest, which is a content object indicating a collection of other content objects; and
the manifest embedded in the proposed value.
- The method of claim 1, wherein a response by one of the majority of the nodes to an interest is a content object with a same name as the name for the interest, wherein the content object has a lifetime set to a small or a zero value.
-
Cisco Technology Inc
(Feb 10 2017)
Explore more patents:
-
Cisco Systems Inc
(Jan 10 2017)
Explore more patents:
-
Palo Alto Research Center Incorporated
(Oct 10 2016)
Explore more patents:
-
Cisco Tech Inc
Explore more patents:
-
H04L67/10
Explore more patents:
-
H04L67/32
Explore more patents:
-
H04L67/327
Explore more patents:
-
H04L29/08
Explore more patents:
Document Preview
- Publication: Apr 12, 2018
-
Application:
Oct 10, 2016
US 201615289739 A
-
Priority:
Oct 10, 2016
US 201615289739 A