-
Notifications
You must be signed in to change notification settings - Fork 104
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #123 from DeDiS/development
Merging latest development branch into master.
- Loading branch information
Showing
263 changed files
with
12,891 additions
and
7,761 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,34 @@ | ||
cothority | ||
.idea | ||
notes.txt | ||
deploy/deterlab/build | ||
deploy/deterlab/deploy/* | ||
deploy/deterlab/remote/* | ||
deploy/deterlab/config.toml | ||
test_data | ||
app/app | ||
deploy/deterlab/remote/* | ||
app/sign/sign | ||
app/stamp/stamp | ||
app/shamir/shamir | ||
app/naive/naive | ||
app/ntree/ntree | ||
deploy/platform/deterlab/build | ||
deploy/platform/deterlab/remote/* | ||
deploy/platform/deterlab/deter.toml | ||
deploy/platform/localhost/* | ||
deploy/platform/localhost | ||
deploy/deploy | ||
deploy/matplotlib/*csv | ||
deploy/matplotlib/*png | ||
deploy/matplotlib/imgs | ||
test/ | ||
deploy/platform/deterlab/forkexec/forkexec | ||
deploy/platform/Deterlab/users/users | ||
app/conode/config.toml | ||
app/conode/conode | ||
app/conode/conode*.tar.gz | ||
app/conode/conode-bin/ | ||
app/conode/hosts.list | ||
app/conode/key.priv | ||
app/conode/key.pub | ||
app/conode/local_keys/ | ||
app/conode/old/ | ||
app/conode/real/ | ||
|
||
*.pyc | ||
*.toml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# build script for dedis/cothority libraries | ||
go: | ||
- 1.5.1 | ||
env: | ||
global: | ||
- REPO="dedis/cothority" | ||
- HOME="/home/travis" | ||
- GOPATH="$HOME" | ||
- PATH="$HOME/bin:$PATH" | ||
before_install: | ||
- mkdir -p $HOME/src/github.com/dedis | ||
- mkdir -p $HOME/bin | ||
- ls $TRAVIS_BUILD_DIR | ||
- mv $TRAVIS_BUILD_DIR $HOME/src/github.com/dedis | ||
- cd $HOME/src/github.com/dedis/cothority | ||
- go list -f '{{join .Deps "\n"}} {{join .TestImports "\n"}}' ./... | grep -v "^github.com/dedis/cothority" | xargs go get -t -v | ||
before_script: | ||
- git remote add production https://github.com/DeDiS/cothority.git | ||
- git fetch -a production | ||
script: | ||
- go run dedis-travis-script.go |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,79 +1,108 @@ | ||
# Cothority | ||
|
||
The code permits the testing and running of a cothority-system together with the applications. It is split up in | ||
deployment, application and protocols. The basic cryptographic code comes from DeDiS/crypto. The following modules | ||
are used: | ||
The code in this repository permits the testing and running of a cothority-system together with some applications. It is split up in deployment, application and protocols. The basic cryptographic code comes from [DeDiS/crypto](https://github.com/DeDiS/crypto). | ||
|
||
Deploy | ||
## Warning | ||
**The software provided in this repository is highly experimental and under heavy development. Do not use it for anything security-critical. All usage is at your own risk!** | ||
|
||
* Deter - running | ||
* Go-routines - in preparation | ||
* Future: | ||
* Docker | ||
* LXC | ||
## Deploy | ||
|
||
Applications | ||
* Available: | ||
* [DeterLab](deterlab.net) | ||
* Localhost | ||
* Planned: | ||
* Docker | ||
* LXC | ||
|
||
* timestamping | ||
* signing - needs to collect more data | ||
* vote - doesn't run yet. | ||
|
||
Protocols | ||
## Applications | ||
|
||
* collective signing | ||
* joint threshold signing - work in progress | ||
|
||
# How to run | ||
* Available: | ||
* Timestamping | ||
* Signing | ||
* Shamir-secret-service: regular or tree signing | ||
* Planned: | ||
* Randhound: decentrailzed randomness cothority | ||
* Vote | ||
|
||
For the moment only the timestamping on Deterlab works: | ||
## Protocols | ||
|
||
In the top-level directory, type | ||
* Collective signing | ||
|
||
# How to Run a Cothority | ||
|
||
All applications in `app/*` are stand-alone. Currently, they can be used by deploying to either localhost or DeterLab. | ||
|
||
## Localhost | ||
To run a simple signing check on localhost, execute the following commands: | ||
|
||
``` | ||
go get ./... | ||
go build | ||
./cothority | ||
$ go get ./... | ||
$ cd deploy | ||
$ go build | ||
$ ./deploy -deploy localhost simulation/sign_single.toml | ||
``` | ||
|
||
then enter the name of the deterlab-installation, your username and your project-name, and you should | ||
be ready to go. The arguments are: | ||
## DeterLab | ||
|
||
If you use the `-deploy deterlab` option, then you are prompted to enter the name of the DeterLab installation, your username, and the names of project and experiment. There are some flags which make your life as a cothority developer simpler when deploying to DeterLab: | ||
|
||
* `-nobuild`: don't build any of the helpers which is useful if you're working on the main code | ||
* `-build "helper1,helper2"`: only build the helpers, separated by a ",", which speeds up recompiling | ||
* `-range start:end`: runs only the simulation-lines including `start` and `end`. Counts from 0, start and end can be omitted and represent beginning and end of lines, respectively. | ||
|
||
* -debug - number between 0 and 5 - 0 is silent, 5 is very verbose | ||
* -deploy [deterlab,gochannels] - by default is "deterlab" - gochannels are next | ||
* -app [server,client] - whether to run the application as server or client - not yet implemented | ||
### SSH-keys | ||
For convenience, we recommend that you upload a public SSH-key to the DeterLab site. If your SSH-key is protected through a passphrase (which should be the case for security reasons!) we further recommend that you add your private key to your SSH-agent / keychain. Afterwards you only need to unlock your SSH-agent / keychain once (per session) and can access all your stored keys without typing the passphrase each time. | ||
|
||
For the sake of easy development there are some switches that are to be used only for the | ||
deterlab implementation: | ||
**OSX:** | ||
|
||
You can store your SSH-key directly in the OSX-keychain by executing: | ||
|
||
``` | ||
$ /usr/bin/ssh-add -K ~/.ssh/<your private ssh key> | ||
``` | ||
|
||
* -nobuild - don't build any of the helpers - useful if you're working on the main code | ||
* -build "helper1,helper2" - only build the helpers, separated by a "," - speeds up recompiling | ||
* -machines # - tells how many machines are to be used for the run | ||
Make sure that you actually use the `ssh-add` program that comes with your OSX installation, since those installed through [homebrew](http://brew.sh/), [MacPorts](https://www.macports.org/) etc. **do not support** the `-K` flag per default. | ||
|
||
**Linux:** | ||
|
||
Make sure that the `ssh-agent` is running. Afterwards you can add your SSH-key via: | ||
|
||
``` | ||
$ ssh-add ~/.ssh/<your private ssh key> | ||
``` | ||
|
||
# Applications | ||
|
||
## CoNode | ||
|
||
You can find more information about CoNode in the corresponding [README](https://github.com/DeDiS/cothority/blob/development/app/conode/README.md). | ||
|
||
## Timestamping | ||
|
||
For the moment the only running application - it sets up servers that listen for client-requests, collect all | ||
requests and handle them to a root-node. | ||
Sets up servers that listen for client-requests, collects all requests and hands them to a root-node for timestamping. | ||
|
||
## Signing | ||
|
||
A simple mechanism that only receives a message, signs it, and returns it. | ||
A simple mechanism that is capable of receiving messages and returning their signatures. | ||
|
||
## Voting | ||
## RandHound | ||
|
||
Not done yet | ||
Test-implementation of a randomization-protocol based on cothority. | ||
|
||
# Protocols | ||
|
||
We want to compare different protocols for signing and timestamping uses. | ||
|
||
## Collective signing | ||
## Collective Signing | ||
|
||
This one runs well and is described in a pre-print from Dylan Visher. | ||
|
||
## Join threshold signing | ||
## Shamir Signing | ||
|
||
A textbook shamir signing for baseline-comparison against the collective signing protocol. | ||
|
||
|
||
A baseline-comparison being developed by the DeDiS-lab at EPFL. | ||
# Further Information | ||
|
||
* Decentralizing Authorities into Scalable Strongest-Link Cothorities: [paper](http://arxiv.org/pdf/1503.08768v1.pdf), [slides](http://dedis.cs.yale.edu/dissent/pres/150610-nist-cothorities.pdf) | ||
* Certificate Cothority - Towards Trustworthy Collective CAs: [paper](https://petsymposium.org/2015/papers/syta-cc-hotpets2015.pdf) |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.