aboutsummaryrefslogtreecommitdiff
path: root/bidder
diff options
context:
space:
mode:
Diffstat (limited to 'bidder')
-rw-r--r--bidder/auction.go67
-rw-r--r--bidder/bid.go77
-rw-r--r--bidder/bid_test.go27
-rw-r--r--bidder/option.go18
4 files changed, 0 insertions, 189 deletions
diff --git a/bidder/auction.go b/bidder/auction.go
deleted file mode 100644
index a22f005..0000000
--- a/bidder/auction.go
+++ /dev/null
@@ -1,67 +0,0 @@
-package bidder
-
-import (
- "fmt"
- "log"
- "os"
-
- "kesim.org/seal"
- "kesim.org/seal/nizk/commit"
-)
-
-// Auction is the simple interface for the engine
-type Auction interface {
- Join(bidder Bidder) // A bidder calls this to join the auction
- GotMessage(msg []byte, sig []byte) error // A bidder uses this method to publish a message
-}
-
-// Bidder is the interface that the Auction engine uses to communicate
-type Bidder interface {
- Commitment() *commit.Commitment
- Start(map[string]*commit.Commitment)
- Result()
- Receive(msg []byte) error
-}
-
-type auction struct {
- description *seal.Description
-
- bidder Bidder
-
- log func(string, ...any)
- verbose func(string, ...any)
- debug func(string, ...any)
-}
-
-func nullf(string, ...any) {}
-
-func NewAuction(description *seal.Description, options ...Option) (a *auction, e error) {
- if description.BitLength > 63 {
- return nil, fmt.Errorf("Invalid BitLength in description: %d", description.BitLength)
- }
-
- logger := log.New(os.Stdout, "[seal::client] ", log.LstdFlags)
-
- a = &auction{
- description: description,
- log: logger.Printf,
- verbose: nullf,
- debug: nullf,
- }
-
- for _, opt := range options {
- opt(a)
- }
-
- return a, nil
-}
-
-func (a *auction) Join(bidder Bidder) {
- a.bidder = bidder
-}
-
-// Received is called by the bidder whenever a message came in for the auction via the dashboard
-// or other means of communication.
-func (a *auction) Received(msg []byte) error {
- return fmt.Errorf("Auction.Received not implemented")
-} \ No newline at end of file
diff --git a/bidder/bid.go b/bidder/bid.go
deleted file mode 100644
index 5f98a0c..0000000
--- a/bidder/bid.go
+++ /dev/null
@@ -1,77 +0,0 @@
-package bidder
-
-import (
- "crypto/ed25519"
- "fmt"
-
- . "kesim.org/seal/nizk"
-
- "kesim.org/seal/nizk/commit"
- "kesim.org/seal/nizk/stage1"
-)
-
-type bid struct {
- id ed25519.PrivateKey
- Id ed25519.PublicKey
-
- price uint64 // bigendian encoding of the bid
- bitlength uint8 // number of bits encoded in price.
-
- // bits are derived from zbid and the zero element in
- // the slice corresponds to the highest bit in zbid
- bits []*commit.Statement
-
- // The commitments we received from the bidders.
- bidders map[string][]*commit.Commitment
-
- // sorted list of the bidders.
- bidder_ids []string
-
- // Stage 1 data per round
- stage1 []*stage1.Statement
-}
-
-// newBid creates a new Bidder for the given price, using the lower bits up to bitlength
-func newBid(price uint64, bitlength uint8) (b *bid, e error) {
- if bitlength > 63 {
- return nil, fmt.Errorf("bitlength too large, maximum is 63")
- } else if 0 != (price >> bitlength) {
- return nil, fmt.Errorf("price %d too large for given bitlength %d", price, bitlength)
- }
-
- b = &bid{
- price: price,
- bitlength: bitlength,
- }
-
- b.Id, b.id, e = ed25519.GenerateKey(nil)
- if e != nil {
- return nil, e
- }
-
- b.bits = make([]*commit.Statement, bitlength)
- for i := bitlength; i > 0; i-- {
- set := (price>>(i-1)&1 != 0)
- x, r := Curve.RandomScalar(), Curve.RandomScalar()
- b.bits[i-1] = commit.NewStatement(x, r, set)
- }
-
- return b, nil
-}
-
-// Commit returns the public commitment to the bits and a signature
-// TODO: return signature over bid
-func (bid *bid) Commit() (c []*commit.Commitment) {
- c = make([]*commit.Commitment, len(bid.bits))
- for i := range bid.bits {
- c[i] = bid.bits[i].Commit(Bites(bid.Id))
- }
- return c
-}
-
-func (bid *bid) Result() {
-}
-
-func (bid *bid) Send(msg []byte, sig []byte) error {
- return fmt.Errorf("bidder.Send not implemented")
-} \ No newline at end of file
diff --git a/bidder/bid_test.go b/bidder/bid_test.go
deleted file mode 100644
index a479e5d..0000000
--- a/bidder/bid_test.go
+++ /dev/null
@@ -1,27 +0,0 @@
-package bidder
-
-import (
- "testing"
-)
-
-func TestBitlengthTooLarge(t *testing.T) {
- bid, e := newBid(0xFFFFFF, 70)
- if e == nil {
- t.Fatalf("failure expected, but got bid: %#v", bid)
- }
-}
-
-func TestPriceTooLarge(t *testing.T) {
- bid, e := newBid(0xFFFFFF, 8)
- if e == nil {
- t.Fatalf("failure expected, but got bid: %#v", bid)
- }
-}
-
-func TestBidOK(t *testing.T) {
- bid, e := newBid(102400, 24)
- if e != nil {
- t.Fatalf("unexpected error: %v", e)
- }
- t.Logf("Bid: %+v", bid)
-} \ No newline at end of file
diff --git a/bidder/option.go b/bidder/option.go
deleted file mode 100644
index d1c9783..0000000
--- a/bidder/option.go
+++ /dev/null
@@ -1,18 +0,0 @@
-package bidder
-
-import (
- "log"
- "os"
-)
-
-type Option func(auction *auction)
-
-func OptVerbose(a *auction) {
- logger := log.New(os.Stdout, "[seal::client][verbose] ", log.LstdFlags)
- a.verbose = logger.Printf
-}
-
-func OptDebug(a *auction) {
- logger := log.New(os.Stdout, "[seal::client][debug] ", log.LstdFlags)
- a.debug = logger.Printf
-}