Command Reference

Running Cicada programs on multiple machines is easier with the following:

cicada

Cicada MPC tools.

usage: cicada [-h]
              {certificate-info,credentials,generate-shares,run,start,version}
              ...

commands (choose one)

command

Possible choices: certificate-info, credentials, generate-shares, run, start, version

Sub-commands

certificate-info

Display information about a TLS certificate.

cicada certificate-info [-h] path
Positional Arguments
path

Path to the certificate file.

credentials

Generate player credentials for TLS encryption.

cicada credentials [-h] [--certificate CERTIFICATE] [--country COUNTRY]
                   [--days DAYS] [--email EMAIL] [--identity IDENTITY]
                   [--locality LOCALITY] [--name NAME]
                   [--organization ORGANIZATION] --rank RANK [--state STATE]
                   [--unit UNIT]
Named Arguments
--certificate

Output certificate file. Default: “player-{rank}.cert”

Default: “player-{rank}.cert”

--country

Certificate country. Default: “US”

Default: “US”

--days

Length of time the certificate will be valid. Default: 365

Default: 365

--email

Certificate email. Default: None

--identity

Output identity (private key and certificate) file. Default: “player-{rank}.pem”

Default: “player-{rank}.pem”

--locality

Certificate locality. Default: “Albuquerque”

Default: “Albuquerque”

--name

Common name. Default: based on player rank.

--organization

Certificate organization. Default: “Cicada”

Default: “Cicada”

--rank

Player rank.

--state

Certificate state. Default: “New Mexico”

Default: “New Mexico”

--unit

Certificate organizational unit. Default: None

generate-shares

Generate secret shares for pedagogy.

cicada generate-shares [-h] [--order ORDER] [--precision PRECISION]
                       [--world-size WORLD_SIZE]
                       secret
Positional Arguments
secret

Secret value.

Named Arguments
--order, -m

Field modulus. Default: 18446744073709551557

Default: 18446744073709551557

--precision, -p

Fractional precision. Default: 16

Default: 16

--world-size, -n

Number of players. Default: 3

Default: 3

run

Run all Cicada processes on the local machine.

cicada run [-h] [--dry-run] [--frontend {basic,tmux,tmux-windows,xterm}]
           [--identity IDENTITY] [--inspect] [--trusted TRUSTED]
           [--root-address ROOT_ADDRESS]
           [--tmux-layout {even-horizontal,even-vertical,tiled}]
           [--world-size WORLD_SIZE]
           program ...
Positional Arguments
program

Program to execute.

args

Program arguments.

Named Arguments
--dry-run, -y

Don’t start actual processes.

Default: False

--frontend, -f

Possible choices: basic, tmux, tmux-windows, xterm

Frontend to execute processes.

Default: “basic”

--identity

Player private key and certificate in PEM format. Default: “player-{rank}.pem” file, if it exists.

Default: “player-{rank}.pem”

--inspect, -i

Start a Python prompt after running program.

Default: False

--trusted

Trusted certificates in PEM format. Default: “player-{rank}.cert” files, if they exist.

Default: “player-{rank}.cert”

--root-address

Root address. Default: “tcp://127.0.0.1:25252

Default: “tcp://127.0.0.1:25252

--tmux-layout

Possible choices: even-horizontal, even-vertical, tiled

Pane layout for the tmux frontend. Default: “even-vertical”

Default: “even-vertical”

--world-size, -n

Number of players. Default: 3

Default: 3

start

Start one Cicada process.

cicada start [-h] [--dry-run] [--address ADDRESS] [--identity IDENTITY]
             [--inspect] [--trusted TRUSTED] [--root-address ROOT_ADDRESS]
             --rank RANK [--world-size WORLD_SIZE]
             program ...
Positional Arguments
program

Program to execute.

args

Program arguments.

Named Arguments
--dry-run, -y

Don’t start actual processes.

Default: False

--address

Network address. Default: tcp://172.17.0.2:25252 for player 0, otherwise tcp://172.17.0.2

--identity

Player private key and certificate in PEM format. Default: “player-{rank}.pem” file, if it exists.

Default: “player-{rank}.pem”

--inspect, -i

Start a Python prompt after running program.

Default: False

--trusted

Trusted certificates in PEM format. Default: “player-{rank}.cert” files, if they exist.

Default: “player-{rank}.cert”

--root-address

Root address. Default: same as –address for player 0, required otherwise.

--rank

Player rank.

--world-size, -n

Number of players. Default: 3

Default: 3

version

Print the Cicada version.

cicada version [-h]

cicada-perf

Cicada MPC performance tests.

usage: cicada-perf [-h] {broadcast,floor,gather,scatterv,version} ...

commands (choose one)

command

Possible choices: broadcast, floor, gather, scatterv, version

Sub-commands

broadcast

Test broadcast performance on the local machine.

cicada-perf broadcast [-h] [--count COUNT] [--identity IDENTITY] [--seed SEED]
                      [--size SIZE] [--src SRC] [--trusted TRUSTED]
                      [--world-size WORLD_SIZE]
Named Arguments
--count

Number of broadcast operations. Default: 10000

Default: 10000

--identity

Player private key and certificate in PEM format. Default: “player-{rank}.pem” file, if it exists.

Default: “player-{rank}.pem”

--seed

Random seed. Default: 1234

Default: 1234

--size

Broadcast message size in bytes. Default: 1000

Default: 1000

--src

Broadcast src player. Default: 0

Default: 0

--trusted

Trusted certificates in PEM format. Default: “player-{rank}.cert” files, if they exist.

Default: “player-{rank}.cert”

--world-size, -n

Number of players. Default: 3

Default: 3

floor

Test floor() performance on the local machine.

cicada-perf floor [-h] [--count COUNT] [--identity IDENTITY] [--seed SEED]
                  [--trusted TRUSTED] [--world-size WORLD_SIZE]
Named Arguments
--count

Number of floor() operations. Default: 1

Default: 1

--identity

Player private key and certificate in PEM format. Default: “player-{rank}.pem” file, if it exists.

Default: “player-{rank}.pem”

--seed

Random seed. Default: 1234

Default: 1234

--trusted

Trusted certificates in PEM format. Default: “player-{rank}.cert” files, if they exist.

Default: “player-{rank}.cert”

--world-size, -n

Number of players. Default: 3

Default: 3

gather

Test gather performance on the local machine.

cicada-perf gather [-h] [--count COUNT] [--dst DST] [--identity IDENTITY]
                   [--seed SEED] [--size SIZE] [--trusted TRUSTED]
                   [--world-size WORLD_SIZE]
Named Arguments
--count

Number of gather operations. Default: 10000

Default: 10000

--dst

Gather dst player. Default: 0

Default: 0

--identity

Player private key and certificate in PEM format. Default: “player-{rank}.pem” file, if it exists.

Default: “player-{rank}.pem”

--seed

Random seed. Default: 1234

Default: 1234

--size

Gather message size in bytes. Default: 1000

Default: 1000

--trusted

Trusted certificates in PEM format. Default: “player-{rank}.cert” files, if they exist.

Default: “player-{rank}.cert”

--world-size, -n

Number of players. Default: 3

Default: 3

scatterv

Test scatterv performance on the local machine.

cicada-perf scatterv [-h] [--count COUNT] [--src SRC] [--identity IDENTITY]
                     [--seed SEED] [--size SIZE] [--trusted TRUSTED]
                     [--world-size WORLD_SIZE]
Named Arguments
--count

Number of scatterv operations. Default: 10000

Default: 10000

--src

Scatterv src player. Default: 0

Default: 0

--identity

Player private key and certificate in PEM format. Default: “player-{rank}.pem” file, if it exists.

Default: “player-{rank}.pem”

--seed

Random seed. Default: 1234

Default: 1234

--size

Scatterv message size in bytes. Default: 1000

Default: 1000

--trusted

Trusted certificates in PEM format. Default: “player-{rank}.cert” files, if they exist.

Default: “player-{rank}.cert”

--world-size, -n

Number of players. Default: 3

Default: 3

version

Print the Cicada version.

cicada-perf version [-h]