state

package
v0.0.0-...-667c717 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2016 License: MIT, MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CommitterPublicKeyLinkName    = "committer-public-key"
	DataLinkName                  = "data"
	ParentLinkName                = "parent"
	CommitTypeChallenge           = "challenge-offer"
	CommitTypeChallengeAcceptance = "challenge-accept"
	CommitTypeChallengeConfirm    = "challenge-confirm"
	CommitTypeGameStep            = "game-step"
)
View Source
const (
	AuthorPublicKeyLinkName = "author-public-key"
	PlayerPublicKeyLinkName = "player-public-key"
)
View Source
const (
	StateLinkName        = "interplanetary-game-system"
	IdentityLinkName     = "identity.pem"
	PlayersLinkName      = "players"
	ChallengesLinkName   = "challenges"
	GamesLinkName        = "games"
	LastUpdatedFileName  = "last-updated"
	StateDirectoryName   = "state"
	PlayersDirectoryName = "players"
	GamesDirectoryName   = "games"
	PrivateKeyFileName   = "private.pem"
)

Variables

This section is empty.

Functions

func GetRequestBody

func GetRequestBody(w http.ResponseWriter, r *http.Request) ([]byte, bool)

func MakeChallengesAcceptHandler

func MakeChallengesAcceptHandler(b *Broker) goji.HandlerFunc

func MakeChallengesGetHandler

func MakeChallengesGetHandler(b *Broker) goji.HandlerFunc

func MakeChallengesGetOneHandler

func MakeChallengesGetOneHandler(b *Broker) goji.HandlerFunc

func MakeChallengesPostHandler

func MakeChallengesPostHandler(b *Broker) goji.HandlerFunc

func MakeGamesGetHandler

func MakeGamesGetHandler(b *Broker) goji.HandlerFunc

func MakeGamesGetOneHandler

func MakeGamesGetOneHandler(b *Broker) goji.HandlerFunc

func MakePlayersGetHandler

func MakePlayersGetHandler(b *Broker) goji.HandlerFunc

func MakePlayersGetOneHandler

func MakePlayersGetOneHandler(b *Broker) goji.HandlerFunc

func MakePlayersPatchHandler

func MakePlayersPatchHandler(b *Broker) goji.HandlerFunc

func MakePlayersPostHandler

func MakePlayersPostHandler(b *Broker, s *cachedshell.Shell) goji.HandlerFunc

func WriteError

func WriteError(w http.ResponseWriter, e error, c int)

func WriteJSON

func WriteJSON(w http.ResponseWriter, d interface{}, c int)

Types

type Broker

type Broker struct {
	// contains filtered or unexported fields
}

func NewBroker

func NewBroker(st *State, nodeDir string, s *cachedshell.Shell, unpin bool) *Broker

func (*Broker) Checkin

func (b *Broker) Checkin() error

func (*Broker) Checkout

func (b *Broker) Checkout() *State

func (*Broker) Return

func (b *Broker) Return()

type Challenge

type Challenge struct {
	// contains filtered or unexported fields
}

func NewChallenge

func NewChallenge() *Challenge

func (*Challenge) Challenger

func (c *Challenge) Challenger() *Player

func (*Challenge) Comment

func (c *Challenge) Comment() string

func (*Challenge) Committer

func (c *Challenge) Committer() *Player

func (*Challenge) Hash

func (c *Challenge) Hash() string

func (*Challenge) ID

func (c *Challenge) ID() string

func (*Challenge) IpfsJsonData

func (c *Challenge) IpfsJsonData() ([]byte, error)

func (*Challenge) Parent

func (c *Challenge) Parent() Commit

func (*Challenge) Publish

func (c *Challenge) Publish(s *cachedshell.Shell) (string, error)

func (*Challenge) Sign

func (c *Challenge) Sign() error

func (*Challenge) Signature

func (c *Challenge) Signature() []byte

func (*Challenge) SignatureData

func (c *Challenge) SignatureData() ([]byte, error)

func (*Challenge) Timeout

func (c *Challenge) Timeout() time.Time

func (*Challenge) Timestamp

func (c *Challenge) Timestamp() time.Time

func (*Challenge) Type

func (c *Challenge) Type() string

func (*Challenge) Verify

func (c *Challenge) Verify() error

type ChallengeAcceptance

type ChallengeAcceptance struct {
	// contains filtered or unexported fields
}

func NewChallengeAcceptance

func NewChallengeAcceptance() *ChallengeAcceptance

func (*ChallengeAcceptance) Accepter

func (c *ChallengeAcceptance) Accepter() *Player

func (*ChallengeAcceptance) Challenge

func (c *ChallengeAcceptance) Challenge() *Challenge

func (*ChallengeAcceptance) Comment

func (c *ChallengeAcceptance) Comment() string

func (*ChallengeAcceptance) Committer

func (c *ChallengeAcceptance) Committer() *Player

func (*ChallengeAcceptance) Hash

func (c *ChallengeAcceptance) Hash() string

func (*ChallengeAcceptance) ID

func (c *ChallengeAcceptance) ID() string

func (*ChallengeAcceptance) IpfsJsonData

func (c *ChallengeAcceptance) IpfsJsonData() ([]byte, error)

func (*ChallengeAcceptance) Parent

func (c *ChallengeAcceptance) Parent() Commit

func (*ChallengeAcceptance) Publish

func (c *ChallengeAcceptance) Publish(s *cachedshell.Shell) (string, error)

func (*ChallengeAcceptance) Sign

func (c *ChallengeAcceptance) Sign() error

func (*ChallengeAcceptance) Signature

func (c *ChallengeAcceptance) Signature() []byte

func (*ChallengeAcceptance) SignatureData

func (c *ChallengeAcceptance) SignatureData() ([]byte, error)

func (*ChallengeAcceptance) Timeout

func (c *ChallengeAcceptance) Timeout() time.Time

func (*ChallengeAcceptance) Timestamp

func (c *ChallengeAcceptance) Timestamp() time.Time

func (*ChallengeAcceptance) Type

func (c *ChallengeAcceptance) Type() string

func (*ChallengeAcceptance) Verify

func (c *ChallengeAcceptance) Verify() error

type ChallengeConfirmation

type ChallengeConfirmation struct {
	// contains filtered or unexported fields
}

func NewChallengeConfirmation

func NewChallengeConfirmation() *ChallengeConfirmation

func (*ChallengeConfirmation) Acceptance

func (c *ChallengeConfirmation) Acceptance() *ChallengeAcceptance

func (*ChallengeConfirmation) Comment

func (c *ChallengeConfirmation) Comment() string

func (*ChallengeConfirmation) Committer

func (c *ChallengeConfirmation) Committer() *Player

func (*ChallengeConfirmation) Confirmer

func (c *ChallengeConfirmation) Confirmer() *Player

func (*ChallengeConfirmation) Hash

func (c *ChallengeConfirmation) Hash() string

func (*ChallengeConfirmation) ID

func (c *ChallengeConfirmation) ID() string

func (*ChallengeConfirmation) IpfsJsonData

func (c *ChallengeConfirmation) IpfsJsonData() ([]byte, error)

func (*ChallengeConfirmation) Parent

func (c *ChallengeConfirmation) Parent() Commit

func (*ChallengeConfirmation) Publish

func (*ChallengeConfirmation) Sign

func (c *ChallengeConfirmation) Sign() error

func (*ChallengeConfirmation) Signature

func (c *ChallengeConfirmation) Signature() []byte

func (*ChallengeConfirmation) SignatureData

func (c *ChallengeConfirmation) SignatureData() ([]byte, error)

func (*ChallengeConfirmation) Timeout

func (c *ChallengeConfirmation) Timeout() time.Time

func (*ChallengeConfirmation) Timestamp

func (c *ChallengeConfirmation) Timestamp() time.Time

func (*ChallengeConfirmation) Type

func (c *ChallengeConfirmation) Type() string

func (*ChallengeConfirmation) Verify

func (c *ChallengeConfirmation) Verify() error

type Commit

type Commit interface {
	Type() string
	Timestamp() time.Time
	ID() string
	Committer() *Player
	Parent() Commit
	Hash() string
	Signature() []byte
	SignatureData() ([]byte, error)
	Sign() error
	Verify() error
	IpfsJsonData() ([]byte, error)
	Publish(*cachedshell.Shell) (string, error)
	// contains filtered or unexported methods
}

type Game

type Game struct {
	// contains filtered or unexported fields
}

func CreateGame

func CreateGame(
	challenger *Player,
	exp time.Duration,
	c string,
) (*Game, error)

func GetGame

func GetGame(h string, s *cachedshell.Shell, players []*Player) (*Game, error)

func NewGame

func NewGame() *Game

func ReadGame

func ReadGame(in io.Reader, players []*Player) (*Game, error)

func (*Game) Accept

func (g *Game) Accept(
	accepter *Player,
	exp time.Duration,
	c string,
) error

func (*Game) Acceptance

func (g *Game) Acceptance() *ChallengeAcceptance

func (*Game) Challenge

func (g *Game) Challenge() *Challenge

func (*Game) Commits

func (g *Game) Commits() []Commit

func (*Game) Confirm

func (g *Game) Confirm(
	confirmer *Player,
	exp time.Duration,
	c string,
) error

func (*Game) Confirmation

func (g *Game) Confirmation() *ChallengeConfirmation

func (*Game) ID

func (g *Game) ID() string

func (*Game) Merge

func (g *Game) Merge(o *Game) error

func (*Game) Players

func (g *Game) Players() []*Player

func (*Game) Publish

func (g *Game) Publish(s *cachedshell.Shell) (string, error)

func (*Game) Step

func (g *Game) Step(
	player *Player,
	data []byte,
) error

func (*Game) Steps

func (g *Game) Steps() []*GameStep

func (*Game) Timeout

func (g *Game) Timeout() time.Time

func (*Game) Timestamp

func (g *Game) Timestamp() time.Time

func (*Game) Write

func (g *Game) Write(out io.Writer) error

type GameStep

type GameStep struct {
	// contains filtered or unexported fields
}

func NewGameStep

func NewGameStep() *GameStep

func (*GameStep) Committer

func (g *GameStep) Committer() *Player

func (*GameStep) Data

func (g *GameStep) Data() []byte

func (*GameStep) Hash

func (g *GameStep) Hash() string

func (*GameStep) ID

func (g *GameStep) ID() string

func (*GameStep) IpfsJsonData

func (g *GameStep) IpfsJsonData() ([]byte, error)

func (*GameStep) Parent

func (g *GameStep) Parent() Commit

func (*GameStep) Player

func (g *GameStep) Player() *Player

func (*GameStep) Publish

func (g *GameStep) Publish(s *cachedshell.Shell) (string, error)

func (*GameStep) Sign

func (g *GameStep) Sign() error

func (*GameStep) Signature

func (g *GameStep) Signature() []byte

func (*GameStep) SignatureData

func (g *GameStep) SignatureData() ([]byte, error)

func (*GameStep) Timestamp

func (g *GameStep) Timestamp() time.Time

func (*GameStep) Type

func (g *GameStep) Type() string

func (*GameStep) Verify

func (g *GameStep) Verify() error

type IPGSTime

type IPGSTime struct {
	time.Time
}

IPGSTime wraps around time.Time for consistent text formatting

func (IPGSTime) MarshalJSON

func (t IPGSTime) MarshalJSON() ([]byte, error)

MarshalJSON creates a UTC RFC-3339 representation of the time.Time embedded within IPGSTime

type Player

type Player struct {
	Timestamp time.Time
	Name      string
	Flags     map[string]int
	Nodes     []string
	// contains filtered or unexported fields
}

func NewPlayer

func NewPlayer(pub *PublicKey, priv *PrivateKey) *Player

func (*Player) Get

func (p *Player) Get(h string, s *cachedshell.Shell) (string, error)

func (*Player) ID

func (p *Player) ID() string

func (*Player) Key

func (p *Player) Key() *PublicKey

func (*Player) PrivateKey

func (p *Player) PrivateKey() *PrivateKey

func (*Player) Publish

func (p *Player) Publish(s *cachedshell.Shell, author *Player) (string, error)

func (*Player) Read

func (p *Player) Read(in io.Reader) error

func (*Player) String

func (p *Player) String() string

func (*Player) Update

func (p *Player) Update(o *Player) (bool, error)

func (*Player) Write

func (p *Player) Write(out io.Writer) error

type PrivateKey

type PrivateKey struct {
	// contains filtered or unexported fields
}

func NewPrivateKey

func NewPrivateKey(k *crypto.PrivateKey) *PrivateKey

func (*PrivateKey) Key

func (k *PrivateKey) Key() *crypto.PrivateKey

type PublicKey

type PublicKey struct {
	// contains filtered or unexported fields
}

func NewPublicKey

func NewPublicKey(k *crypto.PublicKey, h string) *PublicKey

func (*PublicKey) Equals

func (k *PublicKey) Equals(o *PublicKey) bool

func (*PublicKey) Get

func (k *PublicKey) Get(h string, s *cachedshell.Shell) error

func (*PublicKey) Hash

func (k *PublicKey) Hash() string

func (*PublicKey) Key

func (k *PublicKey) Key() *crypto.PublicKey

func (*PublicKey) MarshalJSON

func (k *PublicKey) MarshalJSON() ([]byte, error)

func (*PublicKey) Publish

func (k *PublicKey) Publish(s *cachedshell.Shell) (string, error)

func (*PublicKey) UnmarshalJSON

func (k *PublicKey) UnmarshalJSON(d []byte) error

type State

type State struct {
	LastUpdated time.Time
	Owner       *Player
	Players     []*Player
	// contains filtered or unexported fields
}

func FindLatestState

func FindLatestState(nodeDir string, s *cachedshell.Shell, unpin bool) (*State, error)

func FindStateForNode

func FindStateForNode(nodeID string, s *cachedshell.Shell) (*State, error)

func NewState

func NewState() *State

func (*State) AcceptGame

func (st *State) AcceptGame(id string, exp time.Duration, c string) (string, error)

func (*State) AddGame

func (st *State) AddGame(g *Game) (string, error)

func (*State) AddPlayer

func (s *State) AddPlayer(p *Player) (changed bool)

func (*State) Challenges

func (st *State) Challenges() []*Game

func (*State) Combine

func (s *State) Combine(o *State) (bool, error)

func (*State) Commit

func (st *State) Commit(nodeDir string, s *cachedshell.Shell, unpin bool) error

func (*State) ConfirmGame

func (st *State) ConfirmGame(id string, exp time.Duration, c string) error

func (*State) CreateGame

func (st *State) CreateGame(exp time.Duration, c string) (string, error)

func (*State) Game

func (st *State) Game(id string) *Game

func (*State) Games

func (st *State) Games() []*Game

func (*State) Get

func (st *State) Get(h string, s *cachedshell.Shell) error

func (*State) LastUpdatedString

func (st *State) LastUpdatedString() string

func (*State) ParseLastUpdated

func (st *State) ParseLastUpdated(s string) error

func (*State) PlayerForID

func (s *State) PlayerForID(id string) *Player

func (*State) Publish

func (st *State) Publish(s *cachedshell.Shell) (string, error)

func (*State) Read

func (st *State) Read(nodeDir string) error

func (*State) StepGame

func (st *State) StepGame(id string, data []byte) error

func (*State) Write

func (st *State) Write(nodeDir string) error

Jump to

Keyboard shortcuts

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