Skip to content

Instantly share code, notes, and snippets.

@beber89
Created September 24, 2019 09:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save beber89/081200f439fe5a7a61bc2ab064943788 to your computer and use it in GitHub Desktop.
Save beber89/081200f439fe5a7a61bc2ab064943788 to your computer and use it in GitHub Desktop.
miner-dapp-wasm/blockchain/blockchain
type Blockchain struct {
chain []Block
}
func listener(blkchn *Blockchain, msg string) {
// mining happen creating new block
// string payload shall be converted to transaction struct
var trMsg TransactionMessage
trMsg.Deserialize(msg)
var blk Block
go func() {
blk = NewBlock(blkchn.chain[len(blkchn.chain)-1].GetHash(), trMsg.Trans, diff, trMsg.Timestamp)
}()
blkchn.mutate(blk)
}
// NewBlockchain creates a new struct blockchain with default values for genesis block
func NewBlockchain() *Blockchain {
// In order to initialize user and connect to tracker
GetObserver()
gblock := NewGenesisBlock(1000)
var chain []Block
chain = append(chain, gblock)
chn := Blockchain{chain}
GetObserver().node.SetNewTransactionCallback(func(msg string) {
listener(&chn, msg)
})
return &chn
}
// RequestTransaction initiates a transaction
func (blkchn *Blockchain) RequestTransaction(trans Transaction) {
// observer send request to chainfabric
trMsg := TransactionMessage{trans, uint64(time.Now().Unix())}
GetObserver().node.SendMessage("TRANSACTION " + trMsg.Serialize())
blk := NewBlock(blkchn.chain[len(blkchn.chain)-1].GetHash(), trMsg.Trans, diff, uint64(time.Now().Unix()))
blkchn.mutate(blk)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment