core: improve documentation a little

This commit is contained in:
Roman Khimov 2020-05-07 22:04:10 +03:00
parent 3db14b4699
commit 2e58a14978
2 changed files with 12 additions and 3 deletions

View file

@ -63,7 +63,9 @@ var (
persistInterval = 1 * time.Second persistInterval = 1 * time.Second
) )
// Blockchain represents the blockchain. // Blockchain represents the blockchain. It maintans internal state representing
// the state of the ledger that can be accessed in various ways and changed by
// adding new blocks or headers.
type Blockchain struct { type Blockchain struct {
config config.ProtocolConfiguration config config.ProtocolConfiguration
@ -127,7 +129,8 @@ type Blockchain struct {
type headersOpFunc func(headerList *HeaderHashList) type headersOpFunc func(headerList *HeaderHashList)
// NewBlockchain returns a new blockchain object the will use the // NewBlockchain returns a new blockchain object the will use the
// given Store as its underlying storage. // given Store as its underlying storage. For it to work correctly you need
// to spawn a goroutine for its Run method after this initialization.
func NewBlockchain(s storage.Store, cfg config.ProtocolConfiguration, log *zap.Logger) (*Blockchain, error) { func NewBlockchain(s storage.Store, cfg config.ProtocolConfiguration, log *zap.Logger) (*Blockchain, error) {
if log == nil { if log == nil {
return nil, errors.New("empty logger") return nil, errors.New("empty logger")
@ -264,7 +267,8 @@ func (bc *Blockchain) init() error {
return nil return nil
} }
// Run runs chain loop. // Run runs chain loop, it needs to be run as goroutine and executing it is
// critical for correct Blockchain operation.
func (bc *Blockchain) Run() { func (bc *Blockchain) Run() {
persistTimer := time.NewTimer(persistInterval) persistTimer := time.NewTimer(persistInterval)
defer func() { defer func() {

5
pkg/core/doc.go Normal file
View file

@ -0,0 +1,5 @@
/*
Package core implements Neo ledger functionality.
It's built around the Blockchain structure that maintains state of the ledger.
*/
package core