Proto commits in Cargill/splinter

These 93 commits are when the Protocol Buffers files have changed:

Commit:6624d6b
Author:Andrea Gunderson
Committer:Andrea Gunderson

Remove Gameroom example Gameroom will not be supported in 0.7 Splinter. This commit removes the applications and all associated dockerfiles, kubernetes, and ci/just commands. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

The documentation is generated from this commit.

Commit:e6120d1
Author:Isabel Tomb
Committer:Isabel Tomb

Add decision_ack to 2pc message Add decision_ack to the scabbard store two phase commit message struct. Also add the decision_ack message type to the TwoPhaseCommitMessage proto and protocol. Signed-off-by: Isabel Tomb <tomb@bitwise.io>

Commit:b8cca9f
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add scabbard v3 protobuf message Contains the ScabbardMessageV3 message and the TwoPhaseCommitMessage that will be used by the consensus component of the new scabbard implementation. This message correlates to the TwoPhaseCommitMessage in Augrim Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:cb2b75d
Author:Ryan Beck-Buysse
Committer:Ryan Beck-Buysse

Update copyright headers to include 2022 Signed-off-by: Ryan Beck-Buysse <rbuysse@bitwise.io>

Commit:ca112f3
Author:Ryan Beck-Buysse
Committer:Ryan Beck-Buysse

Update copyright headers to include 2022 Signed-off-by: Ryan Beck-Buysse <rbuysse@bitwise.io>

Commit:544eadb
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add picked public key to AuthChallengeSubmitResponse This will allow the node to know which public key is being used as their identity on the other node in the case multiple submit requests were used. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:a1613ea
Author:Andrea Gunderson
Committer:Andrea Gunderson

Update AuthChallengeSubmitRequest protobuf and protocol The AuthChallengeSubmitRequest will return a list of public key/signature pairs. This is required because a splinterd can support multiple key pairs and it is not clear which one is the expected public key without a proposal. All public keys will be added as a separate connected peer. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:0500513
Author:Andrea Gunderson

Update protocol version to be u32 in authorization messages This matches the type of protocol versions used by libsplinter. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:3d18d83
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add public key to SplinterNode protobuf Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:bec9cfb
Author:Andi Gunderson
Committer:GitHub

Merge pull request #1336 from agunde406/challenge-auth Add Challenge Authorization to Circuits and Proposals in AdminServiceStore

Commit:fb5a5e6
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add CHALLENGE_AUTHORIZATION to Circuit_AuthorizationType proto Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:0dbfa6c
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add new v1 Authorization protobuf messages These messages will be used to implement a new trust authorization as well as challenge authorization. The old messages are left for backwards compatibility. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:aaccb78
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add ScabbardMessage types for pending batches back pressure These message types will be sent by the coordinator to non-coordinators to tell them to reject submitted batches until the pending batch queue length has decreased. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:e19d9e9
Author:Shannyn Telander
Committer:Shannyn Telander

Add payload proto to remove a proposal This change adds the proto definition for the `CircuitManagementPayload` used to request to remove a proposal. Signed-off-by: Shannyn Telander <telander@bitwise.io>

Commit:2351869
Author:Shannyn Telander
Committer:Shannyn Telander

Add message for `RemovedProposal` This change adds the proto definition for the message sent to other prospective circuit members if one member removes a proposal. Signed-off-by: Shannyn Telander <telander@bitwise.io>

Commit:a291d03
Author:Shannyn Telander
Committer:Shannyn Telander

Remove `DisbandedCircuit` admin message This change removes the `DisbandedCircuit` message sent once a circuit that is going through the disband process has been committed to state by a node. In place of this message, the `MemberReady` message is sent to the other nodes as the admin service now handles either case, creating or disbanding a circuit, when it receives the `MemberReady` message. Signed-off-by: Shannyn Telander <telander@bitwise.io>

Commit:dd6729c
Author:Logan Seeley
Committer:Logan Seeley

Update scabbard to send new batches to coordinator Updates scabbard V2 to send all new batches to the coordinator. This will allow scabbard to work correctly with V2 of the two-phase commit consensus algorithm, which only has the coordinator create proposals. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:5fc1bc2
Author:Shannyn Telander
Committer:Shannyn Telander

Add `AbandonedCircuit` admin message Adds an `AbandonedCircuit` admin message variant, to allow for admin services to notify other admin services when a circuit is being abandoned. This also adds the experimental feature `circuit-abandon` to the libsplinter Cargo file, to gaurd the handling of this message. Signed-off-by: Shannyn Telander <telander@bitwise.io>

Commit:6ce0f6c
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add 'schema' to circuit version to clarify meaning The word 'schema' has been added to the CLI, man pages, and code comments to clarify that circuit version refers to the schema of the data, not how many times the circuit has been updated. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:d863cda
Author:Ryan Beck-Buysse
Committer:Ryan Beck-Buysse

Update copyright headers to include 2021 Signed-off-by: Ryan Beck-Buysse <rbuysse@bitwise.io>

Commit:83b09d2
Author:Shannyn Telander
Committer:Shannyn Telander

Add `CircuitPurgeRequest` to admin proto Adds a `CircuitPurgeRequest` to the `CircuitManagementPayload`, to allow for inactive circuits to be purged, or removed from the admin store. Signed-off-by: Shannyn Telander <telander@bitwise.io>

Commit:53ef782
Author:Shannyn Telander
Committer:Shannyn Telander

Add `DisbandedCircuit` admin message type Adds a `DisbandedCircuit` message to allow for member nodes of a circuit being disbanded to be able to come to consensus before the services associated with the circuit are removed. Signed-off-by: Shannyn Telander <telander@bitwise.io>

Commit:3c6bb7f
Author:Shannyn Telander
Committer:Shannyn Telander

Fix typo in admin protos Fixes a small typo of `protcol` -> `protocol`. Signed-off-by: Shannyn Telander <telander@bitwise.io>

Commit:158032f
Author:Shannyn Telander
Committer:Shannyn Telander

Rename `Destroy` to `Disband` in admin service Changes the `CircuitDestroyRequest` to `CircuitDisbandRequest` in the admin protos, as well as all other areas affected by renaming the `destroy` proposal type to `disband`. Signed-off-by: Shannyn Telander <telander@bitwise.io>

Commit:1713183
Author:Shannyn Telander
Committer:Shannyn Telander

Add `circuit_status` field to circuits Adds a `circuit_status` field to the Circuit proto message, as well as the native structs that represent circuits, including the `Circuit` and `ProposedCircuit` in the admin store and the `CreateCircuit` struct in the admin messages. Also updates handling of circuits to include the status field. Signed-off-by: Shannyn Telander <telander@bitwise.io>

Commit:66b3c71
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add circuit version to circuit definitions Going forward, circuits will include an explicit version that will make it easier to tell what is included in a circuit. If a circuit does not have a version included it, is assumed to be 1. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:1954220
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add display_name to circuit and proposed circuit Updates the protobuf and store structs to have an optional human readable display name for a circuit. This does not change the REST API or CLI. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:fc538f4
Author:Peter Schwarz
Committer:GitHub

Merge pull request #810 from peterschwarz/component-message-handling Connect/Disconnect handlers for Service Component Messages

Commit:c497ed6
Author:Peter Schwarz
Committer:Peter Schwarz

Correct UNSET enum variant Correct the Status.UNSET_ERROR to UNSET_STATUS in the SMDisconnectResponse. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:3acacea
Author:Peter Schwarz
Committer:Peter Schwarz

Add internal error responses Add an internal error response that can be sent to a service component if connection/disconnection fails for an internal reason. This helps to ensure that a service isn't waiting on a message that will never arrive. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:e21a22c
Author:Peter Schwarz
Committer:Peter Schwarz

Remove private counter example Remove the private counter example, as this uses the wire protocol for services, which is not yet well defined. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:6797ba3
Author:Peter Schwarz
Committer:Peter Schwarz

Remove private XO example Remove the private XO example, as this uses the wire protocol for services, which is not yet well defined. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:4ceaea9
Author:Logan Seeley
Committer:Logan Seeley

Move scabbard to its own crate Moves the scabbard service to its own crate located at `services/scabbard/libscabbard`. Also includes the following changes: - Move the scabbard-related protocol versions from `splinter::protocol` into the scabbard crate. - Put the service itself into a `service` submodule of the crate. - Reorganize some imports in the new scabbard crate. - Copy some of splinter's private hex functionality into the scabbard crate so it's usable by scabbard. - Move test code from the `splinter::service::test` module to the scabbard crate, since it's no longer used in `splinter`. - Update `splinterd`, `scabbard-cli`, and `gameroomd` to use the `scabbard` crate. - Rename the `scabbard-client` feature in the scabbard crate to just `client`, and remove the `scabbard-client` feature from libsplinter. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:c5c3de2
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add ComponentHeartbeat protobuf message This proto message is meant to copy the NetworkHeartbeat Network message. Currently the ConnectionManager sends NetworkHeartbeat. Services and other components should also receive heartbeat messages. A ComponentHeartbeat message matches the bytes of the network message. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:7b3663b
Author:Andrea Gunderson
Committer:Andrea Gunderson

Fix typo in comment for NetworkHeartbeat Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:99941c6
Author:Peter Schwarz
Committer:Peter Schwarz

Add component messages Component messages include an envelope and message types for processes talking over the component (currently named service) endpoint. These components are isolated from the wider peer network, and only communicate with their local splinter node. This commit introduces the ComponentMessage envelope and its one contained envelope of ServiceMessage. This includes copies of the service related messages from the CircuitMessage envelope, which will eventually replace those messages. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:957eaf7
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add service protocol version request/response messages These messages will be used by admin services to agree on what protocol version the will use. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:b17fa94
Author:Logan Seeley
Committer:Logan Seeley

Make splinter network endpoints plural Updates the network endpoints exposed by splinterd and listed in the node registry and circuit definitions to be lists of endpoints rather than single endpoints. This change will allow splinter nodes to expose endpoints for different protocols in the future. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:859aec1
Author:Logan Seeley
Committer:Logan Seeley

Add comments field to Circuit Add the `comments` field to the `Circuit` protobuf and the corresponding native representation, `CreateCircuit`. This `string` field can be used to provide human-readable comments about the proposed circuit to make it easier for admins to distinguish between proposed circuits. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:08dad78
Author:Ryan Beck-Buysse
Committer:Ryan Beck-Buysse

Update copyright headers to include 2020 Signed-off-by: Ryan Beck-Buysse <rbuysse@bitwise.io>

Commit:a007642
Author:Ryan Beck-Buysse
Committer:Ryan Beck-Buysse

Move root protos into libsplinter Having the protos as a peer of libpslinter was preventing publishing splinter as a crate, because 'cargo publish' only includes files from the current working directory. I considered adding the protos directory from the root using the include field, but the list of files needs to be exhaustive so this method was considered too error prone. Signed-off-by: Ryan Beck-Buysse <rbuysse@bitwise.io>

Commit:836e457
Author:Andi Gunderson
Committer:GitHub

Merge pull request #289 from agunde406/service-connect Simplify Service where services can be connected

Commit:7c63350
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add NetworkHeartbeat message and handler This message will be used to keep connections alive and will be sent at some configurable interval. The handler will simply drop the message. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:84bb21e
Author:Andrea Gunderson
Committer:Andrea Gunderson

Remove Service Connect/Disconnect Forward messages These messages where used to tell other members of a circuit where a service was connected before the list of allowed nodes was added to the circuit defination. Catchup or discovery was missing from this mechanism and nodes/services could get out of sink about where services were located. The other handlers will be updated to assume the service is where it is allowed to be in the circuit defination. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:ce903df
Author:Eloá Franca Verona
Committer:Eloá Franca Verona

Add sabre payload proto to gameroom-app Signed-off-by: Eloá Franca Verona <eloafran@bitwise.io>

Commit:7a1e086
Author:Andrea Gunderson
Committer:Andrea Gunderson

Enforce that a service can only connect to an allowed node Only adds a service to splinter state if the node it is connecting to is in its allowed nodes. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:a351f7f
Author:Logan Seeley
Committer:Logan Seeley

Fix service intitialization timing Fix the service initialization timing by waiting until all members of the new circuit are ready before initializing services. When an admin service has finished added a circuit to SplinterState, it will broadcast a MEMBER_READY message to the other admin services for that circuit. All admin services will wait until every member in the circuit has broadcast a MEMBER_READY message, then they will all initialize their services. This prevents a bug where one node's service registration message would arrive at another node before the 2nd node's circuit was created. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:6d6d5d1
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add UNSET_VOTE to CircuitProposalVote If the vote is not set it should be handled as an error not as an accept. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:88bc83c
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add node_id to payload, proposal and vote record This includes the node id in the CircuitManagementPayload, CircuitProposal and VoteRecord. The node id is the node the signer of the messasge is associated with in the key registry. This will allow us to only verify registration and permissions once. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:419d534
Author:Logan Seeley
Committer:Logan Seeley

Use local protobuf to remove sawtooth_sdk dep Updates scabbard to build the Setting protobuf (required by Sabre) locally rather than pulling it from the sawtooth_sdk. This allows us to change sawtooth_sdk to an optional dependency that's only needed with the `sawtooth-signing-compat` feature. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:9904791
Author:Logan Seeley
Committer:Logan Seeley

Remove dynamic membership from scabbard Removes the dynamic membership code from scabbard; this was a half-baked attempt to implement dynamic membership, which doesn't make sense with the current circuit membership model. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:bb07d8c
Author:Andrea Gunderson
Committer:Andrea Gunderson

Change public key in VoteRecord to bytes Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:7ccd348
Author:Andrea Gunderson
Committer:Andrea Gunderson

Simplify CircuitProposalVote With the additon of the header and signature in CircuitManagementPayload, CircuitProposalVote does not need the signature and public key anymore. So this commit removes Ballot and moves circuit id, circuit hash and vote into the main message. Also adds the signer of the request into the AdminServiceEvent::ProposalVote. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:3b44ddd
Author:Ryan Banks
Committer:Ryan Banks

Add Header and signature fields Add Header message type, header field, and signature field to `CircuitManagementPayload`. Signed-off-by: Ryan Banks <rbanks@bitwise.io>

Commit:2d37a14
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add arguments to SplinterService This will store information needed by the orchestrator when starting up service defined on a circuit. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:5333d86
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add missing durability to circuit definition Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:7208d06
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add required_verifiers to ProposedCircuit This allows use to put the required_verifiers in the proposal created when receiving a message from another service. This commit also adds the required_verifiers to consensus_data in the consensus proposal created when receiving a message from another service. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:a18c816
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add Two Phase Commit consensus to AdminService The AdminService now starts up a TwoPhase consensus engine. The engine will validate that the required nodes in a circuit proposal all have the circuit proposal after recieving the CircuitManagmentPayload. The proposal managers use the hash of the paylaod as its id and verifies that the services are working off the same hash of a circuit proposal. The ProposalManager now contains the code for sending the circuit payload on to the other splinter nodes in the circuit proposal. This commit also changes create_circuit to use the AdminServiceState instead of a clone of the AdminService because the admin service needs to hold on to a join handle for the consensus engine, which is not cloneable. This also requires that the AdminServiceState now holds the implementation for propose_circuit. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:a283dcd
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add AdminMessage to admin protos This message will be used to pass both the CircuitManagmentPayload messages and consensus messages between AdminServices. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:5ef539e
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add the ability to set which peer_id need to approve a proposal Before TwoPhase commit would require that all peers set on engine start up would be required to validate the proposal before commit. This will not work for the AdminService which will require consensus between the members of the circuit described in the proposal and cannot be known at engine startup. This commit adds a new message for RequiredVerifiers where the peers that need to approve a proposal is set. The required verifiers message is set in the consensus data of proposal by a service. If the consensus data is not set, the peers provided at startup will be used. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:71c87eb
Author:Logan Seeley
Committer:Logan Seeley

Implement basic two-phase commit sabre service Introduces a new service implementation for runing Sawtooth Sabre smart contracts on a Splinter circuit. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:32f808a
Author:Peter Schwarz
Committer:Peter Schwarz

Add Circuit Admin Messages Add the series of protobuf messages to support circuit administration. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:785ea1c
Author:Andrea Gunderson
Committer:Peter Schwarz

Add correlation id to service connect messages Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:7392e7c
Author:Logan Seeley
Committer:Logan Seeley

Update private xo to use two-phase consensus Updates the private xo app to use the two-phase consensus engine. This requires a number of changes: - A new `PrivateXoMessage` protobuf is introduced for communication between private xo services; in addition to defining the protobuf itself, the dependencies are updated, a `build.rs` is added, and the Dockerfile is updated to build properly. - The `PrivateXoProposalManager` and `PrivateXoNetworkSender`, which implement the `ProposalManager` and `ConsensusNetworkSender` traits respectively, are created for the service to handle interactions with consensus. - The service performs Message handling and proposal creation using the consensus mechanisms rather than handling consensus itself. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:877da30
Author:Logan Seeley
Committer:Logan Seeley

Replace n_phase with two_phase Replaces the existing code for n_phase consensus with a new two-phase, n-party consensus algorithm that is implemented using the new consensus API. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:ca81dc2
Author:Logan Seeley
Committer:Logan Seeley

Update private counter to use two-phase consensus Updates the private counter app to use the two-phase consensus engine. This requires a number of changes: - A new `PrivateCounterMessage` protobuf is introduced for communication between private counter services; in addition to defining the protobuf itself, the dependencies are updated, a `build.rs` is added, and the Dockerfile is updated to build properly. - The `PrivateCounterProposalManager` and `PrivateCounterNetworkSender`, which implement the `ProposalManager` and `ConsensusNetworkSender` traits respectively, are created for the service to handle interactions with consensus. - The service performs Message handling and increment creation using the consensus mechanisms rather than handling consensus itself. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:cfb88eb
Author:Logan Seeley
Committer:Logan Seeley

Implement consensus traits Define the consensus traits for the ConsensusEngine, ProposalManager, and ConsensusNetworkSender. Also defines the protobufs, errors, and other structures used by these traits. Signed-off-by: Logan Seeley <seeley@bitwise.io>

Commit:cb5194d
Author:Peter Schwarz

Add AdminDirectMessage to circuit messages Add the message and message type for AdminDirectMessage. These messages are identical in structure to a CircuitDirectMessage, but may be handled differently, depending on where they are sent. The message type is set at 100 to create a spacing between message groups. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:5f7891d
Author:Andrea Gunderson
Committer:Andrea Gunderson

Update CircuitErrorHandler to deal with ServiceId This includes updating the CircuitError proto to be able to generate the ServiceId by adding the circuit name and making it clear the sender is a service id. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:6d46948
Author:Peter Schwarz
Committer:Peter Schwarz

Fix typo in UNSET_STATUS Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:d1ad052
Author:Peter Schwarz
Committer:Peter Schwarz

Add NPhase Message wrapper Add a message wrapper for N-Phase transaction messages. This message type does not contain the payload as bytes, as the proposed use does not rely on a dispatcher. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:c6d55de
Author:Peter Schwarz

Replace endpoint with HandshakeMode Remove the endpoint from the ConnectRequest, as it is not necessary. Add a HandshakeMode, which indicates whether or not the node with which the peer is connecting should send its own ConnectRequest. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:3eaba1f
Author:Peter Schwarz
Committer:GitHub

Merge pull request #10 from peterschwarz/bully_algorithm Add proto messages for n-phase commits

Commit:6359299
Author:Peter Schwarz
Committer:GitHub

Merge pull request #8 from peterschwarz/network_trust_auth Network trust authorization

Commit:94c51d8
Author:Peter Schwarz

Add proto messages for n-phase commits Add the proto messages for performing an n-phase commit with a generic transaction. The transaction payload is opaque to the request, and verification is expected to be performed against a hash of the results of the transaction's execution. These messages make the assumption that the requesting node has produced a correct answer and is looking for agreement from other members of the circuit. As there is no followup message, currently, if the requestee agrees, the expectation is that it has also applied the transaction. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:e8c4029
Author:Peter Schwarz
Committer:Peter Schwarz

Add protobuf messages for Authorization Add the protobuf messages for the authorization conversation. These include basic messages for trust and challenge methods of authorization. Signed-off-by: Peter Schwarz <pschwarz@bitwise.io>

Commit:890d3a7
Author:Andrea Gunderson
Committer:Andrea Gunderson

Rename NetworkError and CircuitError enum to Error This changes the generate enums from being called NetworkError_NetworkError and CircuitError_CircuitError to NetworkError_Error and CircuitError_Error Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:d0786c6
Author:Andrea Gunderson
Committer:Andrea Gunderson

Update CircuitError Adds errors for if the sender of the direct message is not in the circuits roster or not connect to the circuit. Also adds the orginal sender to the error message so it can be properly routed. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:451cf05
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add CircuitErrorHandler to handlers When a CircuitError message is not sent directly to a service from the direct message handler, the node that receives the message needs to try its best to send the error message back to the correct service/node. If the node is not able to figure out where to send it, the message is dropped. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:d10b5e4
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add node_endpoint to ServiceConnectForward message Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:c2d988a
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add circuit.proto file Includes CircuitMessage and CircuitMessageType. Also includes messages for sending a direct message and connecting/disconnecting a serivce to a circuit. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:2212835
Author:Andrea Gunderson
Committer:Andrea Gunderson

Remove unused Network messages Network request-response were deemed not necessary. Instead the correlation id will be moved into the circuit messages and NetworkErrorMessage will become a circuit messages. Also NetworkMessageType::UNSET_MESSAGE_TYPE is renamed UNSET_NETWORK_MESSAGE_TYPE so it does not causes collision. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:fdcb2fa
Author:Andrea Gunderson
Committer:Andrea Gunderson

Remove old protobuf messages and update dispatcher tests This commit removes the old protocol messages and updates the disptacher test to use network echo instead. This was the last place they were used. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:99b9c26
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add NetworkEcho protobuf message This message can be used to debug connections. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:1827de2
Author:Andrea Gunderson
Committer:Andrea Gunderson

Add NetworkMessage proto file Includes NetworkError, NetworkRequest, NetworkResponse. NetworkMessage and NetworkMessageType. NetworkMessage acts as a message envelope holding a NetworkMessageType and a payload. The payload will either consist of bytes of a network message or the bytes of another message envelope, for example CircuitMessage or Authorization message. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:8646bb3
Author:Andrea Gunderson
Committer:Andrea Gunderson

Clarify that the url in a Service is the network url A Splinter nodes listen on two endpoints, one for network communciation and one for services to connect too. When defining a Service in CircuitCreateRequest, the node url should be the url for the network communication of the node, not the endpoint that the service is connecting too. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:d1a1dce
Author:Andrea Gunderson
Committer:Andrea Gunderson

Change indention of proto file to 4 spaces instead of 2 Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:8d74629
Author:Andrea Gunderson
Committer:Andrea Gunderson

Move Errors into the Response Message This allows the Error to be correlated with the request that was sent, for example, which circuit creation failed. This commit also includes some small comment clean up and reorganization. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:d662f86
Author:Andrea Gunderson
Committer:Andi Gunderson

Reorganize the spinter protobuf file Update the file so that the Request/Response messages are grouped. Also update the Error number to 100, so there is more room for new circuit messages. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:954739a
Author:Andrea Gunderson
Committer:Andi Gunderson

Renames messages so the are grouped by Noun_Verb Before they were grouped by Verb_Noun. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:da217e8
Author:Andrea Gunderson
Committer:Andi Gunderson

Add proto for handling a 2 party circuits This includes messages to register services, tell the network about registered services and send peer to peer messages. Signed-off-by: Andrea Gunderson <agunde@bitwise.io>

Commit:aecd152
Author:Shawn T. Amundson
Committer:Shawn T. Amundson

Rename channel to circuit for correctness Splinter does not use channels as we originally thought it might; instead, it will use circuits. This updates the terminology. Signed-off-by: Shawn T. Amundson <amundson@bitwise.io>

Commit:3b3bace
Author:Ryan Banks
Committer:Ryan Banks

Add protocol.proto Signed-off-by: Ryan Banks <rbanks@bitwise.io>