Skip to content

Commit 1e8e599

Browse files
committed
Merge pull request #123 from DeDiS/development
Merging latest development branch into master.
2 parents 3b8f57b + 93fc5b7 commit 1e8e599

File tree

263 files changed

+12891
-7761
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

263 files changed

+12891
-7761
lines changed

.gitignore

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,34 @@
11
cothority
22
.idea
33
notes.txt
4-
deploy/deterlab/build
5-
deploy/deterlab/deploy/*
6-
deploy/deterlab/remote/*
7-
deploy/deterlab/config.toml
84
test_data
9-
app/app
10-
deploy/deterlab/remote/*
5+
app/sign/sign
6+
app/stamp/stamp
7+
app/shamir/shamir
8+
app/naive/naive
9+
app/ntree/ntree
10+
deploy/platform/deterlab/build
11+
deploy/platform/deterlab/remote/*
12+
deploy/platform/deterlab/deter.toml
13+
deploy/platform/localhost/*
14+
deploy/platform/localhost
15+
deploy/deploy
16+
deploy/matplotlib/*csv
17+
deploy/matplotlib/*png
18+
deploy/matplotlib/imgs
1119
test/
20+
deploy/platform/deterlab/forkexec/forkexec
21+
deploy/platform/Deterlab/users/users
22+
app/conode/config.toml
23+
app/conode/conode
24+
app/conode/conode*.tar.gz
25+
app/conode/conode-bin/
26+
app/conode/hosts.list
27+
app/conode/key.priv
28+
app/conode/key.pub
29+
app/conode/local_keys/
30+
app/conode/old/
31+
app/conode/real/
32+
33+
*.pyc
34+
*.toml

.travis.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# build script for dedis/cothority libraries
2+
go:
3+
- 1.5.1
4+
env:
5+
global:
6+
- REPO="dedis/cothority"
7+
- HOME="/home/travis"
8+
- GOPATH="$HOME"
9+
- PATH="$HOME/bin:$PATH"
10+
before_install:
11+
- mkdir -p $HOME/src/github.com/dedis
12+
- mkdir -p $HOME/bin
13+
- ls $TRAVIS_BUILD_DIR
14+
- mv $TRAVIS_BUILD_DIR $HOME/src/github.com/dedis
15+
- cd $HOME/src/github.com/dedis/cothority
16+
- go list -f '{{join .Deps "\n"}} {{join .TestImports "\n"}}' ./... | grep -v "^github.com/dedis/cothority" | xargs go get -t -v
17+
before_script:
18+
- git remote add production https://github.com/DeDiS/cothority.git
19+
- git fetch -a production
20+
script:
21+
- go run dedis-travis-script.go

README.md

Lines changed: 71 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,108 @@
11
# Cothority
22

3-
The code permits the testing and running of a cothority-system together with the applications. It is split up in
4-
deployment, application and protocols. The basic cryptographic code comes from DeDiS/crypto. The following modules
5-
are used:
3+
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).
64

7-
Deploy
5+
## Warning
6+
**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!**
87

9-
* Deter - running
10-
* Go-routines - in preparation
11-
* Future:
12-
* Docker
13-
* LXC
8+
## Deploy
149

15-
Applications
10+
* Available:
11+
* [DeterLab](deterlab.net)
12+
* Localhost
13+
* Planned:
14+
* Docker
15+
* LXC
1616

17-
* timestamping
18-
* signing - needs to collect more data
19-
* vote - doesn't run yet.
20-
21-
Protocols
17+
## Applications
2218

23-
* collective signing
24-
* joint threshold signing - work in progress
25-
26-
# How to run
19+
* Available:
20+
* Timestamping
21+
* Signing
22+
* Shamir-secret-service: regular or tree signing
23+
* Planned:
24+
* Randhound: decentrailzed randomness cothority
25+
* Vote
2726

28-
For the moment only the timestamping on Deterlab works:
27+
## Protocols
2928

30-
In the top-level directory, type
29+
* Collective signing
30+
31+
# How to Run a Cothority
32+
33+
All applications in `app/*` are stand-alone. Currently, they can be used by deploying to either localhost or DeterLab.
34+
35+
## Localhost
36+
To run a simple signing check on localhost, execute the following commands:
3137

3238
```
33-
go get ./...
34-
go build
35-
./cothority
39+
$ go get ./...
40+
$ cd deploy
41+
$ go build
42+
$ ./deploy -deploy localhost simulation/sign_single.toml
3643
```
3744

38-
then enter the name of the deterlab-installation, your username and your project-name, and you should
39-
be ready to go. The arguments are:
45+
## DeterLab
46+
47+
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:
48+
49+
* `-nobuild`: don't build any of the helpers which is useful if you're working on the main code
50+
* `-build "helper1,helper2"`: only build the helpers, separated by a ",", which speeds up recompiling
51+
* `-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.
4052

41-
* -debug - number between 0 and 5 - 0 is silent, 5 is very verbose
42-
* -deploy [deterlab,gochannels] - by default is "deterlab" - gochannels are next
43-
* -app [server,client] - whether to run the application as server or client - not yet implemented
53+
### SSH-keys
54+
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.
4455

45-
For the sake of easy development there are some switches that are to be used only for the
46-
deterlab implementation:
56+
**OSX:**
57+
58+
You can store your SSH-key directly in the OSX-keychain by executing:
59+
60+
```
61+
$ /usr/bin/ssh-add -K ~/.ssh/<your private ssh key>
62+
```
4763

48-
* -nobuild - don't build any of the helpers - useful if you're working on the main code
49-
* -build "helper1,helper2" - only build the helpers, separated by a "," - speeds up recompiling
50-
* -machines # - tells how many machines are to be used for the run
64+
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.
5165

66+
**Linux:**
67+
68+
Make sure that the `ssh-agent` is running. Afterwards you can add your SSH-key via:
69+
70+
```
71+
$ ssh-add ~/.ssh/<your private ssh key>
72+
```
5273

5374
# Applications
5475

76+
## CoNode
77+
78+
You can find more information about CoNode in the corresponding [README](https://github.com/DeDiS/cothority/blob/development/app/conode/README.md).
79+
5580
## Timestamping
5681

57-
For the moment the only running application - it sets up servers that listen for client-requests, collect all
58-
requests and handle them to a root-node.
82+
Sets up servers that listen for client-requests, collects all requests and hands them to a root-node for timestamping.
5983

6084
## Signing
6185

62-
A simple mechanism that only receives a message, signs it, and returns it.
86+
A simple mechanism that is capable of receiving messages and returning their signatures.
6387

64-
## Voting
88+
## RandHound
6589

66-
Not done yet
90+
Test-implementation of a randomization-protocol based on cothority.
6791

6892
# Protocols
6993

7094
We want to compare different protocols for signing and timestamping uses.
7195

72-
## Collective signing
96+
## Collective Signing
7397

7498
This one runs well and is described in a pre-print from Dylan Visher.
7599

76-
## Join threshold signing
100+
## Shamir Signing
101+
102+
A textbook shamir signing for baseline-comparison against the collective signing protocol.
103+
77104

78-
A baseline-comparison being developed by the DeDiS-lab at EPFL.
105+
# Further Information
79106

107+
* 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)
108+
* Certificate Cothority - Towards Trustworthy Collective CAs: [paper](https://petsymposium.org/2015/papers/syta-cc-hotpets2015.pdf)

app/app.go

Lines changed: 0 additions & 114 deletions
This file was deleted.

0 commit comments

Comments
 (0)