Documentation
¶
Index ¶
- Constants
- func CheckHash(b Block) bool
- func Hash(a interface{}) [SolutionSize]byte
- func MakeSelf(name string) self
- func MarshalBlock(b Block) ([]byte, error)
- type Action
- type AddNode
- func (an *AddNode) ApplyValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set)
- func (an *AddNode) AsString() string
- func (an *AddNode) CheckValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set) bool
- func (an *AddNode) GetAction() Action
- func (an *AddNode) GetHash() [HashSize]byte
- func (an *AddNode) GetName() string
- func (an *AddNode) GetPrevHash() [HashSize]byte
- func (an *AddNode) SetHash(new_hash [HashSize]byte)
- type AddPublisher
- func (ap *AddPublisher) ApplyValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set)
- func (ap *AddPublisher) AsString() string
- func (ap *AddPublisher) CheckValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set) bool
- func (ap *AddPublisher) GetAction() Action
- func (ap *AddPublisher) GetHash() [HashSize]byte
- func (ap *AddPublisher) GetName() string
- func (ap *AddPublisher) GetPrevHash() [HashSize]byte
- func (ap *AddPublisher) SetHash(new_hash [HashSize]byte)
- type Block
- type BlockChain
- func (bc *BlockChain) AddBlock(b Block) error
- func (bc *BlockChain) AddNode(friend_peerID peer.ID) error
- func (bc *BlockChain) AddPublisher(friend_puzzle [PuzzleSize]byte, friend_name string) error
- func (bc *BlockChain) ChangeName(new_name string) error
- func (bc *BlockChain) Genesis(title string) error
- func (bc *BlockChain) HandlePeerFound(pi peer.AddrInfo)
- func (bc *BlockChain) Invite() (string, error)
- func (bc *BlockChain) Join(rendezvous string, genesis_hash [HashSize]byte)
- func (bc *BlockChain) Post(msg string) error
- func (bc *BlockChain) Run()
- func (bc *BlockChain) ShareChain() list.List
- func (bc *BlockChain) ShareChainSince(hash [HashSize]byte) (list.List, error)
- func (bc *BlockChain) ShareID() peer.ID
- func (bc *BlockChain) SharePubPuzzle() [PuzzleSize]byte
- type ChangeName
- func (cn *ChangeName) ApplyValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set)
- func (cn *ChangeName) AsString() string
- func (cn *ChangeName) CheckValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set) bool
- func (cn *ChangeName) GetAction() Action
- func (cn *ChangeName) GetHash() [HashSize]byte
- func (cn *ChangeName) GetName() string
- func (cn *ChangeName) GetPrevHash() [HashSize]byte
- func (cn *ChangeName) SetHash(new_hash [HashSize]byte)
- type Genesis
- func (g *Genesis) ApplyValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set)
- func (g *Genesis) AsString() string
- func (g *Genesis) CheckValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set) bool
- func (g *Genesis) GetAction() Action
- func (g *Genesis) GetHash() [HashSize]byte
- func (g *Genesis) GetName() string
- func (g *Genesis) GetPrevHash() [HashSize]byte
- func (g *Genesis) SetHash(new_hash [HashSize]byte)
- type Message
- type Post
- func (p *Post) ApplyValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set)
- func (p *Post) AsString() string
- func (p *Post) CheckValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set) bool
- func (p *Post) GetAction() Action
- func (p *Post) GetHash() [HashSize]byte
- func (p *Post) GetName() string
- func (p *Post) GetPrevHash() [HashSize]byte
- func (p *Post) SetHash(new_hash [HashSize]byte)
- type PrivValidation
Constants ¶
View Source
const HashSize = sha256.Size
View Source
const PuzzleSize = sha256.Size
View Source
const SolutionSize = sha256.Size
Variables ¶
This section is empty.
Functions ¶
func Hash ¶
func Hash(a interface{}) [SolutionSize]byte
func MarshalBlock ¶
Types ¶
type AddNode ¶
type AddNode struct { AdminValid PrivValidation NewNodeID peer.ID // contains filtered or unexported fields }
func NewAddNode ¶
func NewAddNode(prev_hash [HashSize]byte, name string, pub_valid PrivValidation, admin_valid PrivValidation, new_node_id peer.ID) *AddNode
func (*AddNode) ApplyValidations ¶
func (*AddNode) CheckValidations ¶
func (*AddNode) GetPrevHash ¶
type AddPublisher ¶
type AddPublisher struct { AdminValid PrivValidation NewPublisherPuzzle [PuzzleSize]byte NewName string // contains filtered or unexported fields }
func NewAddPublisher ¶
func NewAddPublisher(prev_hash [HashSize]byte, name string, pub_valid PrivValidation, admin_valid PrivValidation, new_publisher_puzzle [PuzzleSize]byte, new_name string) *AddPublisher
func (*AddPublisher) ApplyValidations ¶
func (ap *AddPublisher) ApplyValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set)
func (*AddPublisher) AsString ¶
func (ap *AddPublisher) AsString() string
func (*AddPublisher) CheckValidations ¶
func (ap *AddPublisher) CheckValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set) bool
func (*AddPublisher) GetAction ¶
func (ap *AddPublisher) GetAction() Action
func (*AddPublisher) GetHash ¶
func (ap *AddPublisher) GetHash() [HashSize]byte
func (*AddPublisher) GetName ¶
func (ap *AddPublisher) GetName() string
func (*AddPublisher) GetPrevHash ¶
func (ap *AddPublisher) GetPrevHash() [HashSize]byte
func (*AddPublisher) SetHash ¶
func (ap *AddPublisher) SetHash(new_hash [HashSize]byte)
type Block ¶
type Block interface { GetHash() [HashSize]byte GetAction() Action GetName() string GetPrevHash() [HashSize]byte SetHash(new_hash [HashSize]byte) CheckValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set) bool ApplyValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set) AsString() string }
func UnmarshalBlock ¶
type BlockChain ¶
type BlockChain struct { ChainOut chan Block // contains filtered or unexported fields }
func New ¶
func New(self self, asyncOut bool) *BlockChain
func (*BlockChain) AddBlock ¶
func (bc *BlockChain) AddBlock(b Block) error
func (*BlockChain) AddPublisher ¶
func (bc *BlockChain) AddPublisher(friend_puzzle [PuzzleSize]byte, friend_name string) error
func (*BlockChain) ChangeName ¶
func (bc *BlockChain) ChangeName(new_name string) error
func (*BlockChain) Genesis ¶
func (bc *BlockChain) Genesis(title string) error
func (*BlockChain) HandlePeerFound ¶
func (bc *BlockChain) HandlePeerFound(pi peer.AddrInfo)
func (*BlockChain) Invite ¶
func (bc *BlockChain) Invite() (string, error)
func (*BlockChain) Join ¶
func (bc *BlockChain) Join(rendezvous string, genesis_hash [HashSize]byte)
func (*BlockChain) Post ¶
func (bc *BlockChain) Post(msg string) error
func (*BlockChain) Run ¶
func (bc *BlockChain) Run()
func (*BlockChain) ShareChain ¶
func (bc *BlockChain) ShareChain() list.List
func (*BlockChain) ShareChainSince ¶
func (*BlockChain) ShareID ¶
func (bc *BlockChain) ShareID() peer.ID
func (*BlockChain) SharePubPuzzle ¶
func (bc *BlockChain) SharePubPuzzle() [PuzzleSize]byte
type ChangeName ¶
type ChangeName struct { NewName string // contains filtered or unexported fields }
func NewChangeName ¶
func NewChangeName(prev_hash [HashSize]byte, name string, pub_valid PrivValidation, new_name string) *ChangeName
func (*ChangeName) ApplyValidations ¶
func (cn *ChangeName) ApplyValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set)
func (*ChangeName) AsString ¶
func (cn *ChangeName) AsString() string
func (*ChangeName) CheckValidations ¶
func (cn *ChangeName) CheckValidations(publishers map[[PuzzleSize]byte]string, admins *set.Set) bool
func (*ChangeName) GetAction ¶
func (cn *ChangeName) GetAction() Action
func (*ChangeName) GetHash ¶
func (cn *ChangeName) GetHash() [HashSize]byte
func (*ChangeName) GetName ¶
func (cn *ChangeName) GetName() string
func (*ChangeName) GetPrevHash ¶
func (cn *ChangeName) GetPrevHash() [HashSize]byte
func (*ChangeName) SetHash ¶
func (cn *ChangeName) SetHash(new_hash [HashSize]byte)
type Genesis ¶
type Genesis struct { AdminValid PrivValidation Title string NodeID peer.ID // contains filtered or unexported fields }
func NewGenesis ¶
func NewGenesis(prev_hash [HashSize]byte, name string, pub_valid PrivValidation, admin_valid PrivValidation, title string, node_id peer.ID) *Genesis
func (*Genesis) ApplyValidations ¶
func (*Genesis) CheckValidations ¶
func (*Genesis) GetPrevHash ¶
type Post ¶
type Post struct { Msg string // contains filtered or unexported fields }
func (*Post) ApplyValidations ¶
func (*Post) CheckValidations ¶
func (*Post) GetPrevHash ¶
type PrivValidation ¶
type PrivValidation struct { Solution [SolutionSize]byte NextPuzzle [PuzzleSize]byte }
Click to show internal directories.
Click to hide internal directories.