func (sm *ShardMux) StartManaging(shardID uint64, init ShardChainInitializationParameters) (*ShardManager, error) {
	sm.lock.Lock()
	defer sm.lock.Unlock()
	shardManager, err := NewShardManager(shardID, init, sm.beaconClient, sm.hn)
	if err != nil {
		return nil, err
	}
	sm.managers[shardID] = shardManager
	return shardManager, nil
}
// StartManaging starts managing a certain shard.
StartManaging starts managing a certain shard.
// StartManaging starts managing a certain shard .
func (sm *ShardMux) StartManaging(shardID uint64, init ShardChainInitializationParameters) (*ShardManager, error) {
	sm.lock.Lock()
	defer sm.lock.Unlock()
	shardManager, err := NewShardManager(shardID, init, sm.beaconClient, sm.hn)
	if err != nil {
		return nil, err
	}
	sm.managers[shardID] = shardManager
	return shardManager, nil
}
func ( sm * ShardMux ) StartManaging ( shardID uint64 , init ShardChainInitializationParameters ) ( * ShardManager , error ) { sm . lock . Lock ( ) defer sm . lock . Unlock ( ) shardManager , err := NewShardManager ( shardID , init , sm . beaconClient , sm . hn ) if err != nil { return nil , err } sm . managers [ shardID ] = shardManager return shardManager , nil }
StartManaging starts managing a certain shard.
StartManaging starts managing a certain shard .