Proto commits in oasisprotocol/oasis-core

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:56532b1
Author:Jernej Kos
Committer:Jernej Kos

go/common/sgx/aesm: Update to latest protocol version

The documentation is generated from this commit.

Commit:42ade7a
Author:Jernej Kos
Committer:Jernej Kos

go: Start using new protobuf module location The previous location has been deprecated.

Commit:c109c5e
Author:Jernej Kos
Committer:Jernej Kos

Replace protobufs with CBOR

Commit:e5f9ddc
Author:Warren He
Committer:Warren He

go registry: return to KeyManager field name

Commit:4909f78
Author:Warren He
Committer:Warren He

go registry: make runtime key manager optional

Commit:a639ed4
Author:Jernej Kos
Committer:Jernej Kos

Remove RegistrationTime from entity/node/runtime descriptors Now that all transactions use nonces this is no longer needed to prevent replay.

Commit:36020d3
Author:Jernej Kos
Committer:Jernej Kos

go/consensus: Use common transaction format Previously each of the Oasis components (registry, roothash, staking, etc.) defined its own internal transaction format when translating method calls to the consensus layer. After we realized that we need to add common things like gas fees and nonces to most of the method calls, a common transaction format results in less duplication and allows for things like common transaction authentication handlers. This commit changes the following: - Oasis component APIs are changed so that they only perform read-only operations. For mutation they expose functions for generating transactions which can be submitted to the consensus layer via a new SubmitTx method. - The CLI is changed so that there is a single way of submitting transactions. Existing subcommands (registry, staking) only generate signed transactions which is similar to before but now using the common transaction format. - Together with the common transaction format there is now a common way to register method names and for Tendermint applications to specify which methods they support. - The consensus backend now has a notion of a transaction auth handler which performs things like nonce and fee checking. The handler is invoked for each transaction made possible by the common transaction format. - Some consensus-related cleanup. Due to changing the transaction format this is a BREAKING change.

Commit:b849fa8
Author:Warren He
Committer:Warren He

go staking: add amend commission sch. method

Commit:34d0a21
Author:Matevž Jekovec
Committer:Matevž Jekovec

registry: add runtime-specific params * Introduce ComputeParams, MergeParams, TxnSchedulerParams, and StorageParams structs for runtime descriptor, oasis-test-runner config and fixtures. * Split RoundTimeout to ComputeRoundTimeout and MergeRoundTimeout and move them from worker to per-runtime setting in genesis. * Split ReplicaGroupSize to ComputeGroupSize, MergeGroupSize, TxnSchedulerGroupSize and move them from genesis to per-runtime setting in genesis. * Split ReplicaAllowedStrugglers to ComputeAllowedStrugglers, and MergeAllowedStrugglers. * Join TransactionSchedulerParameters with other parameters in TxnSchedulerParameters, and move it from genesis to per-runtime setting in genesis. * Cosmetic changes to worker, registry, runtime cmd arguments for consistency (e.g. transaction_scheduler or txscheduler -> txn_scheduler). * Use Cfg* constants instead of duplicate config strings in test_node.go.

Commit:73eca14
Author:Tadej Janež
Committer:Tadej Janež

go/sentry: Initial API, backend and gRPC implementation

Commit:bd3f732
Author:Jernej Kos
Committer:Jernej Kos

go/staking: Add gRPC client backend

Commit:a544251
Author:Jan Berčič
Committer:Jan Berčič

go/worker: Add delayed shutdown mechanism

Commit:5021c90
Author:Jan Berčič
Committer:Jan Berčič

go/grpc: Move node control calls to a new service

Commit:73397fa
Author:ptrus
Committer:ptrus

go/oasis-test-runner: add halt test scenario

Commit:98bcad7
Author:Tadej Janež
Committer:Tadej Janež

go/common/node: Generalize ConsensusInfo's addresses To enable specifying sentry nodes' IDs and TCP addresses instead of revealing a validator's IP in ConsensusInfo, replace []Address with []ConsensusAddress. Also change go/common/consensus API to return []ConsensusAddress instead of []Address.

Commit:22751a4
Author:Tadej Janež
Committer:Tadej Janež

go/common/node: Add ConsensusAddress

Commit:b809020
Author:Jernej Kos
Committer:Jernej Kos

go/registry: Remove remaining NodeTransport pieces

Commit:272efc2
Author:Yawning Angel
Committer:Yawning Angel

go/tendermint: Use a separate key for tendermint signing operations Because some people seemed really against using the sensible Ed25519 variant that is suited towards our use case, instead tendermint requires it's own signing key. Note: This also applies to the tendermint link authentication key, which at some later point should be carved out into it's own thing.

Commit:a0a2352
Author:Jernej Kos
Committer:Jernej Kos

go: Make all backend getters take a height argument

Commit:f4b3c01
Author:Matevž Jekovec
Committer:Matevž Jekovec

go/registry: remove obsolete GetNodesForEntity API function

Commit:b11838f
Author:Matevž Jekovec
Committer:Matevž Jekovec

go/registry: remove obsolete GetNodeTransport API function

Commit:2eb6a91
Author:Jernej Kos
Committer:Jernej Kos

go/staking: Add delegation

Commit:fa71a18
Author:Andrej Bukošek
Committer:Andrej Bukošek

worker/keymanager: Support multiple runtimes in access control

Commit:913b1b2
Author:Jernej Kos
Committer:Jernej Kos

Rename to oasis-core

Commit:8fdb720
Author:Jan Berčič
Committer:Jan Berčič

go/storage: Add force finalize command

Commit:9796baf
Author:Jernej Kos
Committer:Jernej Kos

go/storage: Change ReadSyncer interface

Commit:e1d5353
Author:Yawning Angel
Committer:Yawning Angel

go/registry: Change the Version field to a struct This is now a struct so that MRSIGNER/MRENCLAVE pairs (and etc) can also be included.

Commit:c775fb3
Author:Yawning Angel
Committer:Yawning Angel

go/staking: Remove Approve/Withdraw support The staking ledger backend doesn't need to be ERC20 compliant to provide staking services, and this is a dramatic reduction in code.

Commit:65d268e
Author:Andrej Bukošek
Committer:Andrej Bukošek

Add support for dumping BFT state into genesis document

Commit:83e4171
Author:Jan Berčič
Committer:Jan Berčič

go/storage: Implement E2E test for GetDiff sync

Commit:89f502d
Author:Matevž Jekovec
Committer:Matevž Jekovec

runtime: Add runtime version support and send it to registry

Commit:29f12ba
Author:Jernej Kos
Committer:Jernej Kos

Change format of I/O root

Commit:7955846
Author:Jernej Kos
Committer:Jernej Kos

go/storage: Add Merge operation

Commit:3f75426
Author:Yawning Angel
Committer:Yawning Angel

go/staking: Add the entity threshold to the gRPC query

Commit:22f1b8e
Author:Yawning Angel
Committer:Yawning Angel

go/common/node: Support using node descriptors for validators

Commit:fab1da0
Author:Jernej Kos
Committer:Jernej Kos

storage: Use special node ID for the root node Otherwise it is not possible to differentiate between a root with an empty label and its child.

Commit:7f70307
Author:Matevž Jekovec
Committer:Jernej Kos

storage: Implement path compressed urkel tree

Commit:5a16a01
Author:Matevž Jekovec
Committer:Jernej Kos

storage: Add support for custom keys and lengths in Urkel tree

Commit:3378bcc
Author:Yawning Angel
Committer:Yawning Angel

go/common/node: Reorganize into various `FooInfo` sub-structs

Commit:9ab4597
Author:Yawning Angel
Committer:Yawning Angel

go/common/node: Remove the `Certificate` wrapper

Commit:7c61579
Author:Yawning Angel
Committer:Yawning Angel

go/common/node: Simplify the Address type * Just use a thin wrapper around net.TCPAddr for simplicity. * Unify the address types between the node and libp2p addresses.

Commit:833ffae
Author:Yawning Angel
Committer:Yawning Angel

go: Decouple the entity signing key from node registration

Commit:5fa72e9
Author:ptrus
Committer:ptrus

go/registry: decouple from 'global epoch'

Commit:fc15f34
Author:Yawning Angel
Committer:Yawning Angel

go/staking: Add a notion of a debonding period

Commit:872cb90
Author:Yawning Angel
Committer:Yawning Angel

go/staking: Add a notion of thresholds * Entity, validator, compute and storage thresholds now exist. * It is possible to set the thresholds in the genesis block.

Commit:b7fe43a
Author:Yawning Angel
Committer:Yawning Angel

go/genesis: Sign the genesis validators with an entity I still have no idea what the best way to handle non-genesis validators is. The current plan is likely to add them to the registry as part of the node-descriptor, but that will create interesting issues with the dump/restore process. Note: The bootstrap server will use the debug test entity to sign the validator, so bad things will happen if it's not configured to use test keys or the test entity.

Commit:226d5d3
Author:ptrus
Committer:ptrus

go/storage/grpc: extract common write log iterator sending logic

Commit:9e7dfb6
Author:ptrus
Committer:ptrus

go/storage: GetCheckpoint operation

Commit:af81e9b
Author:Jernej Kos
Committer:Jernej Kos

storage: Identify roots by (namespace, round, root_hash)

Commit:ff0d5ea
Author:Jan Berčič
Committer:Jan Berčič

go/storage: Implement GetDiff

Commit:3785393
Author:Yawning Angel
Committer:Yawning Angel

go/staking: Add `CommonPool` Burns need to be sent to a common pool. It will help if there is a destination for such things.

Commit:7fbe72e
Author:Yawning Angel
Committer:Yawning Angel

go/staking: Add gRPC bindings

Commit:11d9f13
Author:Jernej Kos
Committer:Jernej Kos

go/storage: Remove separate GetValue method Since leaf nodes always contain the value this resulted in the values being stored twice in the underlying NodeDB. There is no need for this separation as even if the database implementation stores them separately it can always fetch them when requesting the leaf node.

Commit:60a4e4d
Author:Peter Us
Committer:Peter Us

go/registry: remove non-block based methods

Commit:003ded9
Author:Jernej Kos
Committer:Jernej Kos

storage: Remove unused code from old CAS storage

Commit:825c904
Author:Tadej Janež
Committer:Tadej Janež

Support multiple storage receipts

Commit:1f276a2
Author:Yawning Angel
Committer:Yawning Angel

go/registry: Add Runtime.KeyManager

Commit:65f7d59
Author:Yawning Angel
Committer:Yawning Angel

go/registry: Remove the unused `Runtime.Code` field This might break deployment, because we use a pre-generated runtime descriptor. It needs to be regenerated anyway.

Commit:0011670
Author:Yawning Angel
Committer:Yawning Angel

go/common/node: Add `Runtime.ExtraInfo` It is useful to be able to add extra data to the per-node/per-runtime component of the node's descriptor (eg: propagate per-enclave instance state in a generic way, without requiring a separate BFT call).

Commit:2f06bea
Author:Tadej Janež
Committer:Tadej Janež

Remove CAS storage API

Commit:51988fc
Author:Peter Us
Committer:Peter Us

go/roothash: Remove proto

Commit:391944b
Author:Jernej Kos
Committer:Jernej Kos

go/scheduler: Remove unused gRPC interface

Commit:3567fef
Author:Jernej Kos
Committer:Jernej Kos

Fully implement storage RFC 22

Commit:6fef7de
Author:Yawning Angel
Committer:Jernej Kos

go: Make the KeyManager node first class

Commit:9b554e2
Author:eauge
Committer:GitHub

add transaction as compute node type (#1712) * add transaction as compute node type * add check for protobuf files * add protobufs * link ekiden and grpc correct * echo protoc version * compile with right version of protoc

Commit:f515f06
Author:Jernej Kos
Committer:Jernej Kos

go/client: Add WaitBlockIndexed API

Commit:11d9b48
Author:Jernej Kos
Committer:Jernej Kos

client: Add Bleve indexer, advanced queries and index pruning

Commit:726a778
Author:Warren He

Merge remote-tracking branch origin/master into pro-wh/feature/txsch

Commit:49dce38
Author:Jernej Kos
Committer:Jernej Kos

client: Add GetTransactions API

Commit:ff075a0
Author:Andrej Bukošek
Committer:Andrej Bukošek

Expose MKVS in Go storage API

Commit:d79e379
Author:Warren He

go: rename transactionscheduler

Commit:d4ad2a7
Author:Warren He

Merge remote-tracking branch 'origin/master' into pro-wh/feature/txsch

Commit:a7fe29b
Author:Jernej Kos
Committer:Jernej Kos

Update runtime client interfaces

Commit:c63c81e
Author:Warren He

Merge remote-tracking branch 'origin/master' into pro-wh/feature/txsch

Commit:31f3262
Author:Warren He
Committer:Warren He

go: move ScheduleTx to transaction scheduler interface

Commit:c0af292
Author:Peter Us
Committer:Peter Us

registry: node role support

Commit:f08146e
Author:Jernej Kos

roothash: Remove legacy round in protobuf header serialization

Commit:1c46535
Author:Jernej Kos
Committer:Jernej Kos

Add indexable block/transaction tags

Commit:31432a3
Author:Jernej Kos
Committer:Jernej Kos

client: Add GetBlock API

Commit:f0b052c
Author:Jernej Kos
Committer:Jernej Kos

roothash: Remove unused WatchBlocksSince

Commit:a5510fd
Author:Jernej Kos
Committer:Jernej Kos

roothash: Make round a regular uint64 on the wire

Commit:22a4e07
Author:Jernej Kos
Committer:Jernej Kos

Rewrite ekiden runtime implementation

Commit:95107ea
Author:Jan Berčič
Committer:Jan Berčič

Add client RPC to wait for node to finish initial synchronization

Commit:77936bf
Author:Jan Berčič
Committer:Jan Berčič

Move runtime calls and block tracing from the client into the node

Commit:b57cc77
Author:Yawning Angel
Committer:Yawning Angel

go/storage: Add a simple proof-of-storage mechanism (aka receipts) Till the v1 storage design with proper merkle proofs can be implemented, add a simple proof-of-storage mechanism based around an explicity query. While this consumes an extra round-trip, it is significantly easier to implement, and 1xRTT per batch is likely negligible in the grand scheme of things. WARNING: This is BREAKING and UNMIGRATABLE.

Commit:ada01d0
Author:Yawning Angel

go/registry: Future-proof the TEE field in the runtime descriptor Instead of a bool indicating if SGX is required, each runtime descriptor now specifies which TEE type it requires. While this is functionally equivalent, it avoids having to alter the datastructure or much of the code when there is a third TEE type.

Commit:dd4598f
Author:Yawning Angel
Committer:Yawning Angel

go/registry: Remove unused Runtime descriptor fields The following fields are removed since they are currently unused: * MinimumBond * ModeNonDeterministic * AdvertisementRate When staking is specified, we can re-add the fields if it turns out that we need them.

Commit:56f3843
Author:Jernej Kos
Committer:Jernej Kos

go/common/{entity,node}: Remove unused EthAddress field

Commit:64a935b
Author:Jernej Kos
Committer:Jernej Kos

go: Cleanup APIs exposed via gRPC

Commit:cbe87bf
Author:Matevž Jekovec
Committer:Matevž Jekovec

Replace token with simple-keyvalue client/runtime

Commit:7aff697
Author:Jernej Kos
Committer:Jernej Kos

stake: Removed unused stake crates

Commit:333284e
Author:Jernej Kos
Committer:Jernej Kos

Remove Rust-based compute node

Commit:05c78d8
Author:Armani Ferrante
Committer:GitHub

KeyManager signs get_public_key response with dummy key (#1305)

Commit:9e9ed2e
Author:Yawning Angel
Committer:Yawning Angel

go: Improve support for multiple runtimes * Node registrations now enumerate supported runtimes. * Node registration capabilities (attestations) are per runtime. * Node registration `Stake` field is deprecated and removed. * Scheduler now factors in node runtime availability. * Worker host registers the test entity once and only once. * Worker host registers multiple runtimes correctly. * Fix worker host cancelation hanging if mid-initial registration. * SGX attestation digest now includes the runtime ID.

Commit:da13acf
Author:Jernej Kos
Committer:Jernej Kos

go: Add compute committee node

Commit:c99e3bd
Author:Yawning Angel
Committer:Yawning Angel

go/common/ias: Add SigRL retreival to the IAS proxy At some point this needs to have the ability to whitelist based on EPID GID so that we don't provide arbitrary ones to absolutely everyone. This commit also wires in the SigRL retrieval into the worker host capability initialization.

Commit:9b81057
Author:Yawning Angel
Committer:Yawning Angel

registry, node: Changes to support SGX This change contains the preliminary implementation of the required components to support SGX per the confidentialy core RFC. WARNING: This change requires an ABCI state wipe and is BACKWARDS INCOMPATIBLE.

Commit:bdcbd38
Author:Jernej Kos
Committer:Jernej Kos

go: Add worker host implementation

Commit:1fa1c06
Author:Yawning Angel
Committer:Yawning Angel

go: Convert from dep to a Go 1.11 module * All Go/Rust shared protobuf definitions now live under `go/grpc`. * Building ekiden go code now REQURES Go 1.11, use the latest container if needed. * Generating the Go protobuf files now REQUIRES at least v1.1.0 of the protobuf compiler. use the latest container if needed. * Go's module support strongly prefers that the directory containing all of the code is NOT under GOPATH.

Commit:4aafea9
Author:Yawning Angel
Committer:Yawning Angel

go/common/ias: Implement a gRPC->IAS proxy microservice Untested, not wired in to anything yet, need to figure out how we want to do certificate management. Implements #982.