public void Setup() { _container?.Dispose(); TestUtils.DeleteTestChainData(); _eventData = new Dictionary <UInt256, ByteString>(); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.json"), new RunOptions() )); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); _container = containerBuilder.Build(); _blockManager = _container.Resolve <IBlockManager>(); _transactionBuilder = _container.Resolve <ITransactionBuilder>(); _stateManager = _container.Resolve <IStateManager>(); _wallet = _container.Resolve <IPrivateWallet>(); _transactionPool = _container.Resolve <ITransactionPool>(); _configManager = _container.Resolve <IConfigManager>(); // set chainId from config if (TransactionUtils.ChainId(false) == 0) { var chainId = _configManager.GetConfig <NetworkConfig>("network")?.ChainId; var newChainId = _configManager.GetConfig <NetworkConfig>("network")?.NewChainId; TransactionUtils.SetChainId((int)chainId !, (int)newChainId !); HardforkHeights.SetHardforkHeights(_configManager.GetConfig <HardforkConfig>("hardfork") ?? throw new InvalidOperationException()); StakingContract.Initialize(_configManager.GetConfig <NetworkConfig>("network") ?? throw new InvalidOperationException()); CycleDuration = StakingContract.CycleDuration; } }
public void Setup() { _container?.Dispose(); TestUtils.DeleteTestChainData(); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.json"), new RunOptions() )); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); _container = containerBuilder.Build(); _blockManager = _container.Resolve <IBlockManager>(); _stateManager = _container.Resolve <IStateManager>(); _wallet = _container.Resolve <IPrivateWallet>(); _transactionPool = _container.Resolve <ITransactionPool>(); _configManager = _container.Resolve <IConfigManager>(); // set chainId from config if (TransactionUtils.ChainId(false) == 0) { var chainId = _configManager.GetConfig <NetworkConfig>("network")?.ChainId; var newChainId = _configManager.GetConfig <NetworkConfig>("network")?.ChainId; TransactionUtils.SetChainId((int)chainId !, (int)newChainId !); HardforkHeights.SetHardforkHeights(_configManager.GetConfig <HardforkConfig>("hardfork") ?? throw new InvalidOperationException()); } _validatorStatusManager = new ValidatorStatusManager( _transactionPool, _container.Resolve <ITransactionSigner>(), _container.Resolve <ITransactionBuilder>(), _wallet, _stateManager, _container.Resolve <IValidatorAttendanceRepository>(), _container.Resolve <ISystemContractReader>() ); }
public void Setup() { TestUtils.DeleteTestChainData(); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.json"), new RunOptions() )); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); _container = containerBuilder.Build(); _stateManager = _container.Resolve <IStateManager>(); _contractRegisterer = _container.Resolve <IContractRegisterer>(); _minterKeyPair = new EcdsaKeyPair("0xD95D6DB65F3E2223703C5D8E205D98E3E6B470F067B0F94F6C6BF73D4301CE48" .HexToBytes().ToPrivateKey()); _minterPubKey = CryptoUtils.EncodeCompressed(_minterKeyPair.PublicKey); _minterAdd = _minterKeyPair.PublicKey.GetAddress(); _mintCntrlKeyPair = new EcdsaKeyPair("0xE83385AF76B2B1997326B567461FB73DD9C27EAB9E1E86D26779F4650C5F2B75".HexToBytes() .ToPrivateKey()); _mintCntrlPubKey = CryptoUtils.EncodeCompressed(_mintCntrlKeyPair.PublicKey); _mintCntrlAdd = _mintCntrlKeyPair.PublicKey.GetAddress(); }
public Application(string configPath, RunOptions options) { var logLevel = options.LogLevel ?? Environment.GetEnvironmentVariable("LOG_LEVEL"); if (logLevel != null) { logLevel = char.ToUpper(logLevel[0]) + logLevel.ToLower().Substring(1); } if (!new[] { "Trace", "Debug", "Info", "Warn", "Error", "Fatal" }.Contains(logLevel)) { logLevel = "Info"; } LogManager.Configuration.Variables["consoleLogLevel"] = logLevel; LogManager.ReconfigExistingLoggers(); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager(configPath, options)); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <ConsensusModule>(); containerBuilder.RegisterModule <NetworkModule>(); containerBuilder.RegisterModule <StorageModule>(); containerBuilder.RegisterModule <RpcModule>(); containerBuilder.RegisterModule <ConsoleModule>(); _container = containerBuilder.Build(); }
public void Setup() { _container?.Dispose(); TestUtils.DeleteTestChainData(); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config2.json"), new RunOptions() )); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); _container = containerBuilder.Build(); _configManager = _container.Resolve <IConfigManager>(); _stateManager = _container.Resolve <IStateManager>(); _transactionPool = _container.Resolve <ITransactionPool>(); _transactionSigner = _container.Resolve <ITransactionSigner>(); _systemContractReader = _container.Resolve <ISystemContractReader>(); _localTransactionRepository = _container.Resolve <ILocalTransactionRepository>(); _privateWallet = _container.Resolve <IPrivateWallet>(); _transactionManager = _container.Resolve <ITransactionManager>(); _validatorStatusManager = _validatorStatusManager = new ValidatorStatusManager( _transactionPool, _container.Resolve <ITransactionSigner>(), _container.Resolve <ITransactionBuilder>(), _privateWallet, _stateManager, _container.Resolve <IValidatorAttendanceRepository>(), _container.Resolve <ISystemContractReader>() ); ServiceBinder.BindService <GenericParameterAttributes>(); _fes = new FrontEndService(_stateManager, _transactionPool, _transactionSigner, _systemContractReader, _localTransactionRepository, _validatorStatusManager, _privateWallet, _transactionManager); }
public void Setup() { _container?.Dispose(); TestUtils.DeleteTestChainData(); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config2.json"), new RunOptions() )); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); containerBuilder.RegisterModule <ConsensusModule>(); containerBuilder.RegisterModule <NetworkModule>(); _container = containerBuilder.Build(); _privateWallet = _container.Resolve <IPrivateWallet>(); _validatorStatusManager = _container.Resolve <IValidatorStatusManager>(); _configManager = _container.Resolve <IConfigManager>(); _transactionBuilder = _container.Resolve <ITransactionBuilder>(); ServiceBinder.BindService <GenericParameterAttributes>(); _apiService = new ValidatorServiceWeb3(_validatorStatusManager, _privateWallet, _transactionBuilder); }
public void Setup() { _container?.Dispose(); TestUtils.DeleteTestChainData(); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.json"), new RunOptions() )); containerBuilder.RegisterModule <ConfigModule>(); _container = containerBuilder.Build(); _configManager = _container.Resolve <IConfigManager>(); if (TransactionUtils.ChainId(false) == 0) { var chainId = _configManager.GetConfig <NetworkConfig>("network")?.ChainId; var newChainId = _configManager.GetConfig <NetworkConfig>("network")?.NewChainId; TransactionUtils.SetChainId((int)chainId !, (int)newChainId !); HardforkHeights.SetHardforkHeights(_configManager.GetConfig <HardforkConfig>("hardfork") ?? throw new InvalidOperationException()); } Console.WriteLine($"old chain id: {TransactionUtils.ChainId(false)}, new chain id: {TransactionUtils.ChainId(true)}"); }
public void Setup() { var containerBuilder = new SimpleInjectorContainerBuilder(); containerBuilder.RegisterInstanceCreator <IPeer, TcpPeer>(); containerBuilder.RegisterSingleton(ConfigureLogger); containerBuilder.Register(typeof(ILogger <>), typeof(LoggerAdapter <>)); var container = containerBuilder.Build(); _uub = () => container.Resolve <IPeer>(); }
public void Setup() { _container?.Dispose(); TestUtils.DeleteTestChainData(); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.json"), new RunOptions() )); containerBuilder.RegisterModule <ConfigModule>(); _container = containerBuilder.Build(); _configManager = _container.Resolve <IConfigManager>(); }
public LARC20CompilationTest() { var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.json"), new RunOptions() )); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); _container = containerBuilder.Build(); }
public void Setup() { var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.json"), new RunOptions() )); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); _container = containerBuilder.Build(); _stateManager = _container.Resolve <IStateManager>(); }
public StorageBenchmark() { AppDomain.CurrentDomain.UnhandledException += (sender, exception) => { Console.Error.WriteLine(exception); }; var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager("config.json", new RunOptions())); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); _container = containerBuilder.Build(); }
public static void Main(string[] args) { var containerBuilder = new SimpleInjectorContainerBuilder(); containerBuilder.RegisterModule <ClientModule>(); containerBuilder.RegisterModule <ConfigurationModule>(); containerBuilder.RegisterModule <LoggingModule>(); containerBuilder.RegisterModule <NetworkModule>(); var container = containerBuilder.Build(); var bootstrapper = container.Resolve <IBootstrapper>(); bootstrapper.Start(args); }
public VirtualMachineBenchmark() { var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager("config.json", new RunOptions())); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <ConsensusModule>(); containerBuilder.RegisterModule <NetworkModule>(); containerBuilder.RegisterModule <StorageModule>(); containerBuilder.RegisterModule <RpcModule>(); containerBuilder.RegisterModule <ConsoleModule>(); _container = containerBuilder.Build(); }
private static void UpdateDb(DbOptions options) { var logLevel = Environment.GetEnvironmentVariable("LOG_LEVEL"); if (logLevel != null) { logLevel = char.ToUpper(logLevel[0]) + logLevel.ToLower().Substring(1); } if (!new[] { "Trace", "Debug", "Info", "Warn", "Error", "Fatal" }.Contains(logLevel)) { logLevel = "Trace"; } LogManager.Configuration.Variables["consoleLogLevel"] = logLevel; LogManager.ReconfigExistingLoggers(); if (options.type == "soft") { IRocksDbContext dbContext = new RocksDbContext(); dbContext.CompactAll(); } else if (options.type == "hard") { // consider taking a backup of the folder ChainLachain in case anything goes wrong if (options.depth <= 0) { throw new ArgumentException("depth must be positive integer"); } var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( "./config.json", new RunOptions() )); containerBuilder.RegisterModule <StorageModule>(); IContainer _container = containerBuilder.Build(); var stateManager = _container.Resolve <IStateManager>(); var dbShrink = _container.Resolve <IDbShrink>(); var dbContext = _container.Resolve <IRocksDbContext>(); dbShrink.ShrinkDb(options.depth, stateManager.LastApprovedSnapshot.Blocks.GetTotalBlockHeight(), options.consistencyCheck); dbContext.CompactAll(); } else { throw new Exception("compaction should be of either 'soft' or 'hard' type"); } }
public void Setup() { _container?.Dispose(); TestUtils.DeleteTestChainData(); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config2.json"), new RunOptions() )); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); _container = containerBuilder.Build(); _configManager = _container.Resolve <IConfigManager>(); _stateManager = _container.Resolve <IStateManager>(); _contractRegisterer = _container.Resolve <IContractRegisterer>(); _privateWallet = _container.Resolve <IPrivateWallet>(); _snapshotIndexer = _container.Resolve <ISnapshotIndexRepository>(); _systemContractReader = _container.Resolve <ISystemContractReader>(); _transactionManager = _container.Resolve <ITransactionManager>(); _transactionBuilder = _container.Resolve <ITransactionBuilder>(); _transactionSigner = _container.Resolve <ITransactionSigner>(); _transactionPool = _container.Resolve <ITransactionPool>(); _blockManager = _container.Resolve <IBlockManager>(); // set chainId from config if (TransactionUtils.ChainId(false) == 0) { var chainId = _configManager.GetConfig <NetworkConfig>("network")?.ChainId; var newChainId = _configManager.GetConfig <NetworkConfig>("network")?.ChainId; TransactionUtils.SetChainId((int)chainId !, (int)newChainId !); HardforkHeights.SetHardforkHeights(_configManager.GetConfig <HardforkConfig>("hardfork") ?? throw new InvalidOperationException()); } ServiceBinder.BindService <GenericParameterAttributes>(); _apiService = new AccountServiceWeb3(_stateManager, _snapshotIndexer, _contractRegisterer, _systemContractReader, _transactionPool); _transactionApiService = new TransactionServiceWeb3(_stateManager, _transactionManager, _transactionBuilder, _transactionSigner, _transactionPool, _contractRegisterer, _privateWallet); _blockManager.TryBuildGenesisBlock(); }
public static void Main(string[] args) { var containerBuilder = new SimpleInjectorContainerBuilder(); containerBuilder.RegisterModule <CoreModule>(); containerBuilder.RegisterModule <ConfigurationModule>(); containerBuilder.RegisterModule <LoggingModule>(); containerBuilder.RegisterModule <SerializationModule>(); containerBuilder.RegisterModule <PersistenceModule>(); containerBuilder.RegisterModule <ClientModule>(); containerBuilder.RegisterModule <WalletModule>(); containerBuilder.RegisterModule <VMModule>(); var container = containerBuilder.Build(); var bootstrapper = container.Resolve <IBootstrapper>(); bootstrapper.Start(args); }
public BlockchainBenchmark() { if (Directory.Exists("ChainLachain")) { Directory.Delete("ChainLachain", true); } var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager("config.json", new RunOptions())); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <ConsensusModule>(); containerBuilder.RegisterModule <NetworkModule>(); containerBuilder.RegisterModule <StorageModule>(); containerBuilder.RegisterModule <RpcModule>(); containerBuilder.RegisterModule <ConsoleModule>(); _container = containerBuilder.Build(); }
public void BuildForNetwork(string?networkName = null) { Teardown(); string configPath = "config"; if (networkName != null) { configPath += "_"; configPath += networkName; } configPath += ".json"; var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), configPath), new RunOptions() )); containerBuilder.RegisterModule <ConfigModule>(); _container = containerBuilder.Build(); _configManager = _container.Resolve <IConfigManager>(); }
public void Test_Genesis() { Console.WriteLine(Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config2.json")); var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager( Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config2.json"), new RunOptions() )); containerBuilder.RegisterModule <BlockchainModule>(); containerBuilder.RegisterModule <ConfigModule>(); containerBuilder.RegisterModule <StorageModule>(); using var container = containerBuilder.Build(); var blockManager = container.Resolve <IBlockManager>(); var stateManager = container.Resolve <IStateManager>(); Assert.IsTrue(blockManager.TryBuildGenesisBlock()); var genesis = stateManager.LastApprovedSnapshot.Blocks.GetBlockByHeight(stateManager.LastApprovedSnapshot.Blocks .GetTotalBlockHeight()) ?? throw new Exception(); Console.WriteLine( stateManager.LastApprovedSnapshot.Balances .GetBalance("0x6bc32575acb8754886dc283c2c8ac54b1bd93195".HexToUInt160()) ); Assert.AreEqual(0, genesis.Header.Index); Assert.AreEqual( "0x0000000000000000000000000000000000000000000000000000000000000000".HexToUInt256(), genesis.Header.PrevBlockHash ); Console.WriteLine( genesis.Header.StateHash.ToHex() ); Assert.AreEqual( "0xe1cc48aee243f602ec9ab6247a8bfe082b96d2a8c963497543c9ddc4c8029789", genesis.Header.StateHash.ToHex() ); Assert.AreEqual(0, genesis.GasPrice); Assert.AreEqual(null, genesis.Multisig); Assert.AreEqual(0, genesis.Timestamp); }
public void Init() { var container = new Container(); containerBuilder = new SimpleInjectorContainerBuilder(container); }