"time" "github.com/hashicorp/golang-lru" "github.com/shiftcurrency/shift/common" "github.com/shiftcurrency/shift/core/state" "github.com/shiftcurrency/shift/core/types" "github.com/shiftcurrency/shift/event" "github.com/shiftcurrency/shift/logger" "github.com/shiftcurrency/shift/logger/glog" "github.com/shiftcurrency/shift/metrics" "github.com/shiftcurrency/shift/pow" ) var ( chainlogger = logger.NewLogger("CHAIN") jsonlogger = logger.NewJsonLogger() blockInsertTimer = metrics.NewTimer("chain/inserts") ErrNoGenesis = errors.New("Genesis not found in chain") ) const ( blockCacheLimit = 256 maxFutureBlocks = 256 maxTimeFutureBlocks = 30 checkpointLimit = 200 ) type ChainManager struct { //eth EthManager
maxAcceptConns = 50 // Maximum number of concurrently dialing outbound connections. maxActiveDialTasks = 16 // Maximum time allowed for reading a complete message. // This is effectively the amount of time a connection can be idle. frameReadTimeout = 30 * time.Second // Maximum amount of time allowed for writing a complete message. frameWriteTimeout = 20 * time.Second ) var errServerStopped = errors.New("server stopped") var srvjslog = logger.NewJsonLogger() // Server manages all peer connections. // // The fields of Server are used as configuration parameters. // You should set them before starting the Server. Fields may not be // modified while the server is running. type Server struct { // This field must be set to a valid secp256k1 private key. PrivateKey *ecdsa.PrivateKey // MaxPeers is the maximum number of peers that can be // connected. It must be greater than zero. MaxPeers int // MaxPendingPeers is the maximum number of peers that can be pending in the