inband

package module
v0.0.0-...-d290f92 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2019 License: MIT Imports: 13 Imported by: 0

README

inband

A Template for Stateless Networking and Coordination (no, the other kind of state.)

State[1] systems (companies, governments, banks, churches, clubs, schools, charities, armies, unions, etc.) have leveraged computers and networks for increased efficiency and capacity in performing their functions. Of a necessity, the structure of the information systems reify the structure of the implementing organization.

The band, tribe, clan, and autonomous collective may also benefit from computers and networks but the basic concepts of information management used in modern computing systems (user/administrator, viewer/contributor/moderator, access control lists of any sort) introduce the state into a previously stateless system in conflict with efforts to avoid the imposition.

An information system that grants the band of freely cooperating individuals the same increased efficiency and capacity in reaching shared goals can be developed by codifying the interactions that maintain the group identity without differentiating individuals into state organs.

The Inband software with the 'band' protocol is an attempt to provide a framework for such an information system.

[1] Wherein power is alienated from or accrued to the individual via structural relationship to the group as opposed to revokable delegation.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Bands map[Shah]*Claim
View Source
var Claims map[Shah]*Claim
View Source
var Founds map[Shah]*Claim
View Source
var Idents map[Shah]*Claim // indexed by Shah of pubkey
View Source
var MyPrivateCert []byte
View Source
var MyPrivateKey *ed25519.PrivateKey
View Source
var Names map[Shah]*Claim // indexed by shah of name with greatest C
View Source
var Stmts map[Shah]*Stmt

Functions

func NewBand

func NewBand(n string) (err error)

func Shutdown

func Shutdown(pfn, mfn string, debug bool) (err error)

func Sign

func Sign(contents []byte) ([]byte, error)

func SignAs

func SignAs(contents []byte, edkey *ed25519.PrivateKey, pbkey []byte) (encoded []byte, err error)

func Startup

func Startup(pfn, mfn, n string, init, force, debug bool) (err error)

func Untampered

func Untampered(c *Claim) (ok bool)

func Verify

func Verify(contents []byte, encoded []byte, pubkey string) (err error)

Types

type Claim

type Claim struct {
	Affirm bool
	C      uint64 // Increment for superceding claims
	Fld    [4]*Stmt
	Sig    []byte
	Cl     Shah // Represents this claim
}

func MakeClaim

func MakeClaim(affirm bool, count uint64, a0p, a1p, a2p, a3p *Stmt, key *ed25519.PrivateKey) (c *Claim, err error)

type Shah

type Shah [32]byte // In this code if a variable name is two letters, it contains a Shah

func (Shah) Consider

func (b Shah) Consider(c *Claim)

func (Shah) Moot

func (b Shah) Moot(debug bool)

type Stmt

type Stmt struct {
	Said []byte
	Sd   Shah // Represents this statement
}
var MeP *Stmt
var NAME, BAND, FOUND *Stmt
var NmP *Stmt

func (Stmt) Is

func (i Stmt) Is() string

func (Stmt) Visit

func (i Stmt) Visit(debug bool)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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