eggscrambler

module
v0.0.0-...-22f7c09 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 7, 2021 License: MIT

README

Eggscrambler

See report.pdf for a detailed summary of the system. Also, here's a presentation, including a demo at the last slide.

Installation

Run:

git clone https://github.com/arvid220u/eggscrambler

(if you have access to eggscrambler-raft, run instead git clone --recursive git@github.com/arvid220u/eggscrambler)

Then run:

cd eggscrambler && git submodule init && git submodule update go-libp2p-gorpc

For testing:

cd anonbcast && RAFT=../raft-darwin20.2.0.so go test -v

(where raft-darwin20.2.0.so (for mac) can be replaced with another platform-specific version. the RAFT environment variable may be removed if you have access to eggscrambler-raft)

For running the application:

cd confessions && RAFT=../raft-darwin20.2.0.so go run confessions.go

You might need to comment out lines 6 and 24 in anonbcast/raft.go if you don't have access to eggscrambler-raft. If your Go version is not the same as when we libified our Raft implementation, you may get an error cannot load raft plugin ../raft-darwin20.2.0.so.

Overview

Key packages:

  • anonbcast: providing the anonbcast.Client and anonbcast.Server that together implement the interface for executing the anonymous broadcasting protocol.
  • masseyomura: an implementation of the Massey-Omura commutative encryption scheme.
  • raft: an implementation of Raft, including configuration changes.
  • confessions: an example application using anonbcast.

Raft

Because the Raft code is a solution to the 6.824 labs, the staff has asked us to not publish it. Therefore, it is in a private submodule (following this guide).

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL