Proto commits in dedis/cothority

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

Commit:b5ef45d
Author:Linus Gasser
Committer:Linus Gasser

Description and addition of structures Added 'Additional*' fields in a backward-compatible way. Also split the evoting/struct.go to a evoting/proto.go for updating the messages in the evoting frontend.

Commit:fb0feee
Author:Linus Gasser
Committer:Linus Gasser

Merge pull request #2490 from dedis/timeout_lts Setting LTS timeout

The documentation is generated from this commit.

Commit:42c060e
Author:Linus Gasser
Committer:Linus Gasser

Updating proto files

Commit:e596005
Author:Linus Gasser
Committer:Linus Gasser

Add IdentityTsm to index

Commit:e62783e
Author:Linus Gasser

Add the TSM identity to Darc The Trusted Secure Module is used by DuoKey to sign messages using a threshold signature scheme. This PR adds support for Darcs to verify those messages. It is used for the Master Thesis protject of Pilar Marxer.

Commit:aff48c0
Author:Linus Gasser
Committer:Linus Gasser

Separate signup node As the conode.c4dt.org is on the switch-node and doesn't have an SMTP server that allows sending of emails without authentication, the signup-service is changed to interact with a byzcoin on a remote node.

Commit:d0e0aa5
Author:Linus Gasser
Committer:Linus Gasser

Adding email signup and recovery This PR adds the possibility to create accounts linked to an email. 1. Setup - the system needs to be set up once with an account that is allowed to create new users 2. Signup - by sending an email, the service creates a new user and sends the signup link to the given email 3. Recover - once a user is signed up, they can request a mail to recover their account, and a recover link will be sent to the email stored on the ledger This PR has three parts: - updates to the byzcoin system for convenience - adding needed functions to the personhood/user package - adding service endpoints to the personhood service

Commit:d53123a
Author:Christian Grigis
Committer:Christian Grigis

make proto

Commit:442f695
Author:Gaurav Narula

protobuf: fix field name for SignerDID

Commit:ddf7550
Author:Linus Gasser
Committer:GitHub

Make getUpdates behave better (#2392) The previous ByzCoinRPC.getUpdate tried to be smart to cover an error in its use in ByzCoinRPC.getUpdateInstances. The error in getUpdateInstances created a race condition where two quickly updating blocks created two concurrent calls to getUpdates which failed. This PR adds a new field to the ByzCoin.GetUpdates RPC-call that allows it to send updates with regard to a skipchain, and not with regards to a block. This makes getUpdates much simpler. Furthermore it removes the race in getUpdateInstances and waits for each update before accepting new blocks.

Commit:36e4063
Author:Jeff R. Allen

Re-run protoc.

Commit:234efd7
Author:Jeff R. Allen

Add DID to Darcs Add DID to Darcs, update proto files. Add support for DIDs into Cothority JS. Also: Updated protoc version.

Commit:0251ca6
Author:Pierluca Borsò

Updated proto files comments

Commit:39de7a9
Author:Linus Gasser
Committer:Linus Gasser

Rollup and new ViewChange documentation Added some documentation to how the new rollup works.

Commit:26bbba8
Author:Gaurav Narula
Committer:Gaurav Narula

Add SignerDID

Commit:8b8ad24
Author:Gaurav Narula
Committer:Gaurav Narula

DARC: Update proto and make IdentityDID as primary Signed-off-by: Gaurav Narula <gnarula94@gmail.com>

Commit:63a2ff9
Author:Linus Gasser
Committer:GitHub

Rollup protocol (#2321) * Rollup protocol Previously the leader polled for new transactions. This is inefficient, as new transactions have to wait for the leader to poll. With this PR, the all followers forward transactions directly to the leader. Once the leader has a transaction, he directly starts a new block. Once the new block has been accepted, eventually queued up transactions are also sent. This has been tested to be able to go from old nodes to new nodes on a local machine. * Tharvik's comments

Commit:6e1524d
Author:Gaurav Narula
Committer:Jeff R. Allen

DARC: Add support for Sovrin DID Verification DID Resolution depends on indy-cli which is expected to be in $PATH. The pool configuration file is assumed to be in `os.UserConfigDir()/indy/genesis`

Commit:dbfe313
Author:cgrigis
Committer:GitHub

Use js ethereum libs & improve View Method calls (#2332) * Rework to use JS libraries instead of methods of the BEvm service. * Remove no longer needed service methods. * Change `PerformCall` method to use packed arguments instead, simplifying the code and providing support for large integers (BN). * Simplify frontend code by using JS libraries wherever possible. * Clean-up BEvm contract method invocation * Use local conode ReadOnlyStateTrie to call EVM * Update documentation for BEvmInstance methods * remove BEvmInstance.setBEvmRPC() * rename BEvmRPC.performViewMethodCall() to BEvmRPC.callViewMethod() * rename service method to viewCall()

Commit:df36f2f
Author:Christian Grigis
Committer:Linus Gasser

Run "make proto"

Commit:9d8197c
Author:Christian Grigis
Committer:Linus Gasser

Run "make proto"

Commit:9aac615
Author:Christian Grigis
Committer:Linus Gasser

Move from .proto to proto.go

Commit:9b3d3cf
Author:Christian Grigis
Committer:Linus Gasser

Incorporate relevant parts from Stainless service

Commit:0665e16
Author:Christian Grigis
Committer:Christian Grigis

Run "make proto"

Commit:462c2cf
Author:Linus Gasser
Committer:GitHub

Adding ProofsRequest (#2236) * Adding ProofsRequest This PR adds a new service endpoint to ByzCoin: - ProofsRequest It takes a slice of InstanceID/Version and returns a proof for every instance that has a newer version. Further work could include adding/removing of additional info.

Commit:6c17a1b
Author:Christian Grigis
Committer:Christian Grigis

bevm: use bevm_id:contract_address for EVM identity

Commit:7fa24a4
Author:Christian Grigis
Committer:Christian Grigis

bevm: restrict the use of EVM contract identities EVM contract identities can be used only by "synthetic" instructions, generated by the BEvm contract. Direct use of an EVM contract identity to sign an instruction is forbidden and fails verification.

Commit:eba7818
Author:Christian Grigis
Committer:Christian Grigis

Run "make proto"

Commit:69844bb
Author:Gaurav Narula

Proto changes

Commit:dfbae58
Author:Gaurav Narula
Committer:Gaurav Narula

DARC: Update proto Signed-off-by: Gaurav Narula <gnarula94@gmail.com>

Commit:85d6860
Author:Christian Grigis
Committer:Christian Grigis

Run "make proto"

Commit:710dfa9
Author:Noémien Kocher

Performs the make proto

Commit:3a98a8c
Author:Noémien Kocher

Updates the service to create a new channel for each request

Commit:76367ca
Author:Noémien Kocher

Adds "make proto" files Those files are already added by #2193, but I need them to pass the tests.

Commit:06c7dcb
Author:Linus Gasser
Committer:Linus Gasser

Separate personhood-contract and service For the github.com/c4dt/byzcoin I want to include only the contracts from personhood, but not the service. This PR puts the contracts in its own directory, so that the byzcoin-repository can include only that. Also rewrites the testing of the contracts to not use the service itself, but to test only the contracts, without the whole byzcoin-service around. This could also be applied to other contracts...

Commit:790f80b
Author:Linus Gasser
Committer:Jeff R. Allen

Add functionalities to personhood During the OpenHouse2019 demo, a couple of new functionalities have been added: - remove all polls - protect adding of new personhood-gatherings Both functionalities need to be signed off by the conode-key. The personhood/phapp binary can do so when given a private.toml file.

Commit:af23776
Author:Jeff R. Allen

Fix build.

Commit:d5462d2
Author:Gaylor Bosson

Replace Onet and Kyber with v4.0.0-pre1

Commit:8317617
Author:Gaylor Bosson

Read Byzcoin version from the chain

Commit:95b5c3a
Author:Gaylor Bosson
Committer:Gaylor Bosson

Change the time barrier to be by block ID This allows the AddTransaction call to return a proof of the block where the tx is stored. It can then be used to ask for more proofs with at least this block in the chain. Fixes #2002

Commit:45c8ff3
Author:Linus Gasser
Committer:Linus Gasser

Add costValue to spawner-contract

Commit:cd04b5a
Author:Linus Gasser
Committer:Linus Gasser

Noemien's comments

Commit:58dab6a
Author:Linus Gasser
Committer:Linus Gasser

Gaylor's comments

Commit:1ba70cd
Author:Linus Gasser
Committer:Linus Gasser

Adding connectivity command to status In order to verify that all nodes can reach each other, the status service gets an additional command connectivity that tests an all nodes to all nodes connectivity. The test can also try multiple list of nodes until all nodes can reach each other. To prevent abuse, the request must be signed by the node that launches the request.

Commit:c03ba79
Author:Gaylor Bosson

Address nkcr's comments

Commit:f620e41
Author:Gaylor Bosson

Wrap error + update protobuf definitions

Commit:76086e0
Author:Gaylor Bosson
Committer:Gaylor Bosson

Stabilize calypso test This makes sure that the signer counter will be correct after each step of a Calypso write and read requests.

Commit:aca0ef2
Author:Linus Gasser
Committer:Linus Gasser

RoPaSci calypso contract Implements an extension to the Rock-Paper-Scissors contract by allowing the player 1 to store his move (the pre-hash) encrypted in a CalypsoWrite structure. Player 2 will create a CalypsoRead instance that can be used to recover the pre-hash, even if Player 1 is absent. If Player 2 is absent, Player 1 can still confirm the game and collect the wins. There is a documentation at the beginning of the personhood/contract_ropasci.go file.

Commit:d85d54e
Author:Gaylor Bosson

Update protobuf files

Commit:f3d5129
Author:Gaylor Bosson
Committer:Gaylor Bosson

Version stored in the state trie This adds the ByzCoin protocol version in the state trie so that contracts have access to it.

Commit:17f8624
Author:Gaylor Bosson
Committer:Gaylor Bosson

Fix instruction hash Make use of the versioning to fix the instruction hash so that block created with the latest version will correctly hash the invoke command name. Fixes #1990

Commit:70517e3
Author:Gaylor Bosson
Committer:Gaylor Bosson

Version stored in the block This adds a version field to the DataHeader. Old blocks will have 0 as value which is the default one. Fixes #1854

Commit:680bd68
Author:Linus Gasser
Committer:Linus Gasser

Kelong's comments

Commit:ffdf47f
Author:Linus Gasser
Committer:Linus Gasser

Progress indicator when downloading DB Show a progress indicator when the node downloads the DB of the global state.

Commit:7226590
Author:kc1212

Generate proto and fix java tests

Commit:1594f70
Author:kc1212

Merge branch 'master' into name_contract

Commit:8c0748f
Author:Gaylor Bosson
Committer:Gaylor Bosson

Address Kelong's and Linus' comment

Commit:14f361a
Author:Gaylor Bosson

Update proto definition for GetAllChainIDs

Commit:f058ab0
Author:kc1212
Committer:kc1212

Update protobuf files

Commit:674b95d
Author:Gaylor Bosson
Committer:Gaylor Bosson

Use the BDN verification when appropriate in JS

Commit:c9ea08d
Author:Linus Gasser
Committer:Linus Gasser

adds calypso admin binary to set up authorization - calypso/csadmin that takes the private.toml to sign the byzcoin-id that should be stored - calypso:Authorize now checks for the signature, except if COTHORITY_ALLOW_INSECURE_ADMIN=true

Commit:4b95466
Author:Linus Gasser
Committer:Jeff R. Allen

adds fixes to personhood spawner - correctly spawn coins and credential instances, including controlling darc - credentialContract: add 'recover' command to allow a set of darcs reset the controlling darc

Commit:c6ea81e
Author:Linus Gasser
Committer:Linus Gasser

checks that proto-files are updated Lately I find myself often with stalled proto-files. This checks that all proto- files are correctly updated. It does not run 'protoc', as this is very nitpicky in creating files and changes from one version to another.

Commit:0ee082c
Author:Linus Gasser

Updating protobuf-files

Commit:1697ec0
Author:Jeff R. Allen
Committer:Jeff R. Allen

Fix minor typos, add example

Commit:daef541
Author:Jeff R. Allen

Make websockets over HTTPS work Various changes to make websock over HTTPS work better. Fix network.proto to correctly match what the protobuf encoder is doing. Take the new version of onet (fix for URLs ending in slash). scmgr and bcadmin changes to help debug roster contents, including the URL. Docker container includes admin tools now. Better docs on usign built-in TLS. Updated dedis-cothority.toml to reflect reality. The employees.org conode cannot do TLS for the moment, so kick it out of the public cothority.

Commit:6cbd21d
Author:Linus Gasser

adding resharing

Commit:95538a6
Author:Linus Gasser

Initial files

Commit:d9ed6db
Author:Linus Gasser
Committer:Linus Gasser

Setting up structures

Commit:486151d
Author:Linus Gasser
Committer:Linus Gasser

fixing personhood ts-tests

Commit:ce5c65c
Author:Linus Gasser
Committer:Linus Gasser

Adding latest personhood service and contracts Update the personhood service and the contracts to the version used in the latest personhood mobile app available at github.com/dedis/personhood. Most of the code is only tested in the javascript-modules in external/js/cothority.

Commit:5846be5
Author:kc1212
Committer:kc1212

Use string in StateChange and StateChangeBody Fixes #1744

Commit:bd41d1a
Author:Jeff R. Allen

Merge branch 'master' into coin_wallet_2

Commit:2376e98
Author:Jeff R. Allen
Committer:Jeff R. Allen

Remove the parent/child relationships in skipchains This was a feature that was never really used, and won't be used in the future because now it's gone. Also: Add ByzCoin verifier to scmgr. Fixes #1089.

Commit:705bd0b
Author:Linus Gasser
Committer:Linus Gasser

Coin Wallet and Others Adds a coin wallet app to byzcoin that allows you to handle your coins BCAdmin learns how to evolve roster, change the configuration, mint coins, and dump the database Conode gets a new bash-script to run 1..n conodes with arguments for everything

Commit:66f9bb7
Author:kc1212
Committer:kc1212

Include identity hash in java

Commit:826c600
Author:kc1212
Committer:kc1212

Implement secure_darc contract The old DARC contract has too much freedom. We need to limit this freedom in two ways to improve security. First, the owner of any DARC should not be allowed to change its rules arbitrarily, he/she is only allowed to change the existing rules. Nevertheless, we still allow a set of authorised parties to add rules. Second, we want to let certain DARCs create new DARCs, but those new DARCs cannot have arbitrary rules. These features are implemented in a new contract called "secure_darc". For the first restriction, we changed the "evolve" command to reject requests that tries to add new rules. We also added a new command "evolve_unrestricted" to let authorised users add rules. For the second restriction, we give an example of how to implement it statically in the contract, which is to reject spawn requests that contains "spawn:darc". Additionally, we explain in the example how to impelement it the same feature dynamically. Since we have more than one contract that can be decoded into a DARC, we add a new parameter into ChainConfig to keep track of these contracts. Fixes #1625

Commit:0a7b365
Author:kc1212
Committer:kc1212

Use secure_darc by default

Commit:acb89b1
Author:kc1212
Committer:kc1212

Use log instead of eventlog as command

Commit:fba1d1d
Author:kc1212
Committer:kc1212

Add contract ID to Darc rule in Java

Commit:fe16a5b
Author:kc1212
Committer:kc1212

Calypso: do not reuse C to mask secret in Go

Commit:cb2eb02
Author:kc1212
Committer:kc1212

Add skipblock RPC call in java

Commit:abce068
Author:Gaylor Bosson
Committer:Gaylor Bosson

Use the suite name in the service config

Commit:904b748
Author:Gaylor Bosson
Committer:Gaylor Bosson

Fix java code to work with BLS signatures This fixes the different issues caused by using BLS signatures. It also changes the way conodes are parsed to get the information from the public.toml file.

Commit:a81dea3
Author:kc1212
Committer:Jeff R. Allen

Store LTS roster in ByzCoin; resharing LTS

Commit:72552b5
Author:Jeff R. Allen
Committer:Jeff R. Allen

Correct the DKG protocol to count the deals/responses correctly

Commit:a70cc0f
Author:Jeff R. Allen
Committer:Jeff R. Allen

Check proposed roster for overlap.

Commit:472145f
Author:kc1212
Committer:Jeff R. Allen

Fixing java tests

Commit:b927234
Author:Jeff R. Allen
Committer:Jeff R. Allen

Redefine the contract API to be an interface The callback is now a factory function that turns the existing instance data into a struct that implements byzcoin.Contract. Contract writers are advised to have their contract structures embed byzcoin.BasicContract, so that they only need to redefine the methods they are interested in implementing. Also: Removed InstructionsHash, which was derived data and not useful to keep around.

Commit:e79db56
Author:Gaylor Bosson
Committer:Gaylor Bosson

Fix java tests

Commit:52f0c56
Author:Gaylor Bosson
Committer:Gaylor Bosson

Instance versioning API This adds the Java API to get one or several state changes by requesting them to a conode.

Commit:ab186fe
Author:Gaylor Bosson
Committer:Gaylor Bosson

Instance history handlers This adds the handlers required to make requests to ask for one or more state changes. It also adds a request to check the validity of a state change by sending back the list of state changes of the same block to compare the hash

Commit:d2eb5ff
Author:Gaylor Bosson
Committer:Gaylor Bosson

Instance versioning protobuf This adds the new fields in the proto files definition to fix the Java and JS tests

Commit:abe397a
Author:Linus Gasser
Committer:Jeff R. Allen

Addressing Jeff's comments

Commit:29ad2f9
Author:kc1212
Committer:kc1212

Implement signer counter to prevent replay attacks

Commit:ea89938
Author:Jeff R. Allen

Added packed=true feature to proto.awk Now, when faced with a []bool (or other native type) the proto files will indicate packed encoding, which was what dedis/protobuf was already doing. Also added a feature to correctly handle references to lower-case types. Fixed blank lines inside of type declarations. Used these fixes to make trie/proto.go work correctly, so that we have one less manually-maintained .proto file. These changes caused expected changes in the personhood.proto file. This means that fields which no one had noticed could not be deserialised can now be handled from JS and Java. Co-developed with Kelong.

Commit:5783975
Author:Jeff R. Allen

Protobuf fixes: skipchain zigzag encoding and protoc version Do not allow old versions of protoc, so that the .java files do not get changed when we don't want them to be. Fix the encoding of ints in skipchain.proto. If it was automatically generated, proto.awk would have taken care of this. Deploy a new version of cothority-js with the fixed protobuf decoding rules. Document the manually-maintained .proto files better.

Commit:88ecc64
Author:kc1212
Committer:kc1212

Change collection to trie

Commit:be5ea01
Author:Jeff R. Allen
Committer:Jeff R. Allen

More improvements to Auth Prox Better docs. Correctly testing threshold signing in auth prox service test. Sign partial sigs with conode private key. Check signature of partials as they arrive. Use the new ServerIdentity.URL field in order to correctly check for secure connection for enrolling. Move AuthProxProto to the corerct place. Update network.proto to reflect new URL field in ServerIdentity. Other fixes as requested in code review.

Commit:45c4cd9
Author:Jeff R. Allen
Committer:Jeff R. Allen

Fix authprox proto.go file to compile for JS/Java Introduced not-so-gross workaround for the fact that some types we need from Kyber are not available in our proto files.