Documentation
¶
Overview ¶
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Index ¶
- type BlockchainProcessor
- func (bp *BlockchainProcessor) FakeSmithing(numberOfBlocks int, fromGenesis bool, ct chaintype.ChainType) error
- func (bp *BlockchainProcessor) GetBlockChainprocessorStatus() (isSmithing bool, err error)
- func (bp *BlockchainProcessor) Start(sleepPeriod time.Duration)
- func (bp *BlockchainProcessor) StartSmithing() error
- func (*BlockchainProcessor) Stop()
- type BlockchainProcessorInterface
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlockchainProcessor ¶
type BlockchainProcessor struct { ChainType chaintype.ChainType Generator *model.Blocksmith BlockService service.BlockServiceInterface BlockSmithStrategy strategy.BlocksmithStrategyInterface LastBlockID int64 LastBlocksmithIndex int64 Logger *log.Logger BlockchainStatusService service.BlockchainStatusServiceInterface NodeRegistrationService service.NodeRegistrationServiceInterface // contains filtered or unexported fields }
BlockchainProcessor handle smithing process, can be switch to process different chain by supplying different chain type
func NewBlockchainProcessor ¶
func NewBlockchainProcessor( ct chaintype.ChainType, blocksmith *model.Blocksmith, blockService service.BlockServiceInterface, logger *log.Logger, blockchainStatusService service.BlockchainStatusServiceInterface, nodeRegistrationService service.NodeRegistrationServiceInterface, blockSmithStrategy strategy.BlocksmithStrategyInterface, ) *BlockchainProcessor
NewBlockchainProcessor create new instance of BlockchainProcessor
func (*BlockchainProcessor) FakeSmithing ¶
func (bp *BlockchainProcessor) FakeSmithing(numberOfBlocks int, fromGenesis bool, ct chaintype.ChainType) error
FakeSmithing should only be used in testing the blockchain, it's not meant to be used in production, and could cause errors todo: @andy-shi need to adjust this function to newest state of smithing process.
func (*BlockchainProcessor) GetBlockChainprocessorStatus ¶
func (bp *BlockchainProcessor) GetBlockChainprocessorStatus() (isSmithing bool, err error)
GetBlockChainprocessorStatus return the smithing status for this blockchain processor
func (*BlockchainProcessor) Start ¶
func (bp *BlockchainProcessor) Start(sleepPeriod time.Duration)
Start starts the blockchainProcessor
func (*BlockchainProcessor) StartSmithing ¶
func (bp *BlockchainProcessor) StartSmithing() error
StartSmithing start smithing loop
func (*BlockchainProcessor) Stop ¶
func (*BlockchainProcessor) Stop()
Stop stops the blockchainProcessor
type BlockchainProcessorInterface ¶
type BlockchainProcessorInterface interface { Start(sleepPeriod time.Duration) Stop() StartSmithing() error FakeSmithing(numberOfBlocks int, fromGenesis bool, chainType chaintype.ChainType) error GetBlockChainprocessorStatus() (isSmithing bool, err error) }
BlockchainProcessorInterface represents interface for the blockchain processor's implementations