public async Task Start(IResourceOwner resourceOwner, NBitcoin.Network network) { _NATManager = new NATManager(network.DefaultPort); await _NATManager.Init().ContinueWith(t => { var Settings = JsonLoader <Settings> .Instance.Value; if (_NATManager.DeviceFound && _NATManager.Mapped.Value && _NATManager.ExternalIPVerified.Value) { var ipEndpoint = new System.Net.IPEndPoint(_NATManager.ExternalIPAddress, Settings.ServerPort); _Server = new Server(resourceOwner, ipEndpoint, network); if (_Server.Start()) { Trace.Information($"Server started at {ipEndpoint}"); } else { Trace.Information($"Could not start server at {ipEndpoint}"); } } //if (Settings.IPSeeds.Count == 0) { // Trace.Information ("No seeds defined"); //} else { // DiscoveryManager.Instance.Start (resourceOwner, NATManager.Instance.ExternalIPAddress); //} }); }
public static LedgerAnchorWorker CreateLedgerAnchorWorker(IServiceProvider serviceProvider) { IConfiguration configuration = serviceProvider.GetService <IConfiguration>(); IConfiguration anchoring = configuration.GetSection("anchoring"); ILogger logger = serviceProvider.GetService <ILogger>(); IAnchorRecorder recorder = null; switch (anchoring["type"]) { case "blockchain": string anchorKey = anchoring["key"]; if (!string.IsNullOrEmpty(anchorKey)) { NBitcoin.Key key = NBitcoin.Key.Parse(anchorKey); NBitcoin.Network network = NBitcoin.Network.GetNetworks() .First(item => item.GetVersionBytes(NBitcoin.Base58Type.PUBKEY_ADDRESS)[0] == byte.Parse(anchoring["network_byte"])); logger.LogInformation($"Starting Blockchain anchor (address: {key.PubKey.GetAddress(network).ToString()})"); recorder = new BlockchainAnchorRecorder(new Uri(anchoring["bitcoin_api_url"]), key, network, long.Parse(anchoring["fees"])); } break; } if (recorder != null) { return(new LedgerAnchorWorker(serviceProvider.GetRequiredService <IAnchorBuilder>(), recorder, serviceProvider.GetRequiredService <ILogger>())); } else { return(null); } }
public void AssertNetwork(NBitcoin.Network network) { if (network != _Network) { throw new Exception("Wrong network"); } }
public ManyChannelMonitorReadArgs(IChainWatchInterface chainWatchInterface, IBroadcaster broadcaster, ILogger logger, IFeeEstimator feeEstimator, NBitcoin.Network n) { _chainWatchInterface = chainWatchInterface ?? throw new ArgumentNullException(nameof(chainWatchInterface)); _broadcaster = broadcaster ?? throw new ArgumentNullException(nameof(broadcaster)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _feeEstimator = feeEstimator ?? throw new ArgumentNullException(nameof(feeEstimator)); _n = n ?? throw new ArgumentNullException(nameof(n)); }
public ChannelManagerReadArgs(IKeysInterface keysInterface, IBroadcaster broadcaster, IFeeEstimator feeEstimator, ILogger logger, IChainWatchInterface chainWatchInterface, NBitcoin.Network n, ManyChannelMonitor manyChannelMonitor) { _keysInterface = keysInterface ?? throw new ArgumentNullException(nameof(keysInterface)); _broadcaster = broadcaster ?? throw new ArgumentNullException(nameof(broadcaster)); _feeEstimator = feeEstimator ?? throw new ArgumentNullException(nameof(feeEstimator)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _chainWatchInterface = chainWatchInterface ?? throw new ArgumentNullException(nameof(chainWatchInterface)); _n = n; ManyChannelMonitor = manyChannelMonitor ?? throw new ArgumentNullException(nameof(manyChannelMonitor)); }
public static NBitcoin.Network Main() { if (_mainnet != null) { return(_mainnet); } NBitcoin.NetworkBuilder builder = new NBitcoin.NetworkBuilder(); var graviumMainConsensus = new NBitcoin.Consensus { SubsidyHalvingInterval = 210000, MajorityEnforceBlockUpgrade = 750, MajorityRejectBlockOutdated = 950, MajorityWindow = 1000, BIP34Hash = null, PowLimit = new NBitcoin.Target(new NBitcoin.uint256("00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")), PowTargetTimespan = TimeSpan.FromSeconds(14 * 24 * 60 * 60), // two weeks, 20160 minutes PowTargetSpacing = TimeSpan.FromSeconds(10 * 60), // 10 minutes PowAllowMinDifficultyBlocks = false, PowNoRetargeting = false, RuleChangeActivationThreshold = 1916, // 95% of 2016 MinerConfirmationWindow = 2016, // nPowTargetTimespan / nPowTargetSpacing CoinbaseMaturity = 100, LitecoinWorkCalculation = false }; graviumMainConsensus.BIP34Hash = graviumMainConsensus.HashGenesisBlock; _mainnet = builder.SetConsensus(graviumMainConsensus) .SetBase58Bytes(NBitcoin.Base58Type.PUBKEY_ADDRESS, new byte[] { (75) }) // GRV / X .SetBase58Bytes(NBitcoin.Base58Type.SCRIPT_ADDRESS, new byte[] { (125) }) .SetBase58Bytes(NBitcoin.Base58Type.SECRET_KEY, new byte[] { (75 + 128) }) // GRV .SetBase58Bytes(NBitcoin.Base58Type.ENCRYPTED_SECRET_KEY_NO_EC, new byte[] { 0x01, 0x42 }) .SetBase58Bytes(NBitcoin.Base58Type.ENCRYPTED_SECRET_KEY_EC, new byte[] { 0x01, 0x43 }) .SetBase58Bytes(NBitcoin.Base58Type.EXT_PUBLIC_KEY, new byte[] { (0x04), (0x88), (0xB2), (0x1E) }) .SetBase58Bytes(NBitcoin.Base58Type.EXT_SECRET_KEY, new byte[] { (0x04), (0x88), (0xAD), (0xE4) }) .SetBase58Bytes(NBitcoin.Base58Type.PASSPHRASE_CODE, new byte[] { 0x2C, 0xE9, 0xB3, 0xE1, 0xFF, 0x39, 0xE2 }) .SetBase58Bytes(NBitcoin.Base58Type.CONFIRMATION_CODE, new byte[] { 0x64, 0x3B, 0xF6, 0xA8, 0x9A }) .SetBase58Bytes(NBitcoin.Base58Type.STEALTH_ADDRESS, new byte[] { 0x2a }) .SetBase58Bytes(NBitcoin.Base58Type.ASSET_ID, new byte[] { 23 }) .SetBase58Bytes(NBitcoin.Base58Type.COLORED_ADDRESS, new byte[] { 0x13 }) .SetPort(0) .SetRPCPort(0) .SetName("grv-main") .AddAlias("grv-mainnet") .BuildAndRegister(); return(_mainnet); }
public Server(IResourceOwner resourceOwner, IPEndPoint externalEndpoint, NBitcoin.Network network) { _Server = new NodeServer(network, internalPort: externalEndpoint.Port); resourceOwner.OwnResource(_Server); NodeConnectionParameters nodeConnectionParameters = new NodeConnectionParameters(); NBitcoin.Protocol.AddressManager addressManager = AddressManager.Instance.GetBitcoinAddressManager(); // new NBitcoin.Protocol.AddressManager (); var addressManagerBehavior = new AddressManagerBehavior(addressManager); // addressManagerBehavior.Mode = hasExternal ? AddressManagerBehaviorMode.AdvertizeDiscover : AddressManagerBehaviorMode.Discover; nodeConnectionParameters.TemplateBehaviors.Add(addressManagerBehavior); _Server.InboundNodeConnectionParameters = nodeConnectionParameters; _Server.AllowLocalPeers = true; //TODO _Server.ExternalEndpoint = externalEndpoint; Trace.Information($"Server setup at {externalEndpoint}"); }
protected Builder(Network network) { _Network = network.ToNBitcoinNetwork(); }
public string ToString(NBitcoin.Network network) { return(Serializer.ToString(this, network)); }
protected Monitor(Network network) { _Network = network.ToNBitcoinNetwork(); }
protected Monitor(Network network) { _Network = Convert.ToNBitcoinNetwork(network); }
protected Builder(Network network) { _Network = Convert.ToNBitcoinNetwork(network); }