Skip to content
Snippets Groups Projects
Select Git revision
  • bcbcf50c4e296fe5d853b1a99146aecea1e06581
  • develop default protected
  • congestioncontrol
  • merge-v-data-collection-spammer-0.8.2
  • WIP-merge-v-data-collection-spammer-0.8.2
  • merge-v-data-collection-spammer-0.7.7
  • tmp
  • test-masterpow-fixing
  • test-masterpow
  • test-echo
  • v-data-collection
  • v-data-collection-spammer
  • tmp-dump-spam-info
  • dump-msg-info-0.3.1
  • test-dump-message-info
  • spammer-exprandom
  • extra/tutorial
  • without_tipselection
  • hacking-docker-network
  • hacking-docker-network-0.2.3
  • master
  • v0.2.3
22 results

plugin.go

Blame
  • user avatar
    Luca Moser authored and GitHub committed
    Signed-off-by: default avatarLuca Moser <moser.luca@gmail.com>
    c0fc4fc0
    History
    plugin.go 1.63 KiB
    package tangle
    
    import (
    	"github.com/iotaledger/goshimmer/packages/database"
    	"github.com/iotaledger/goshimmer/packages/shutdown"
    	"github.com/iotaledger/hive.go/daemon"
    	"github.com/iotaledger/hive.go/logger"
    	"github.com/iotaledger/hive.go/node"
    	"github.com/iotaledger/iota.go/trinary"
    )
    
    // region plugin module setup //////////////////////////////////////////////////////////////////////////////////////////
    
    var PLUGIN = node.NewPlugin("Tangle", node.Enabled, configure, run)
    var log *logger.Logger
    
    func configure(*node.Plugin) {
    	log = logger.NewLogger("Tangle")
    
    	configureTransactionDatabase()
    	configureTransactionMetaDataDatabase()
    	configureApproversDatabase()
    	configureBundleDatabase()
    	configureTransactionHashesForAddressDatabase()
    	configureSolidifier()
    
    	daemon.BackgroundWorker("Cache Flush", func(shutdownSignal <-chan struct{}) {
    		<-shutdownSignal
    
    		log.Info("Flushing caches to database...")
    		FlushTransactionCache()
    		FlushTransactionMetadata()
    		FlushApproversCache()
    		FlushBundleCache()
    		log.Info("Flushing caches to database... done")
    
    		log.Info("Syncing database to disk...")
    		database.GetBadgerInstance().Close()
    		log.Info("Syncing database to disk... done")
    	}, shutdown.ShutdownPriorityTangle)
    
    }
    
    func run(*node.Plugin) {
    	runSolidifier()
    }
    
    // Requester provides the functionality to request a transaction from the network.
    type Requester interface {
    	RequestTransaction(hash trinary.Hash)
    }
    
    type RequesterFunc func(hash trinary.Hash)
    
    func (f RequesterFunc) RequestTransaction(hash trinary.Hash) { f(hash) }
    
    // endregion ///////////////////////////////////////////////////////////////////////////////////////////////////////////