Created
September 24, 2019 09:56
-
-
Save beber89/081200f439fe5a7a61bc2ab064943788 to your computer and use it in GitHub Desktop.
miner-dapp-wasm/blockchain/blockchain
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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