├── .gitattributes ├── .gitignore ├── LICENSE ├── NBlockchain.sln ├── NBlockchain ├── Interfaces │ ├── IAddressEncoder.cs │ ├── IAsymetricCryptographyService.cs │ ├── IBlockMiner.cs │ ├── IBlockRepository.cs │ ├── IBlockVerifier.cs │ ├── IBlockbaseTransactionBuilder.cs │ ├── IBlockchainNode.cs │ ├── IConsensusMethod.cs │ ├── IDataConnection.cs │ ├── IDateTimeProvider.cs │ ├── IDifficultyCalculator.cs │ ├── IExpectedBlockList.cs │ ├── IForkRebaser.cs │ ├── IHashTester.cs │ ├── IHasher.cs │ ├── IInstructionRepository.cs │ ├── IMerkleTreeBuilder.cs │ ├── INatTraversal.cs │ ├── INetworkParameters.cs │ ├── IOwnAddressResolver.cs │ ├── IPeerDiscoveryService.cs │ ├── IPeerNetwork.cs │ ├── IProvideUpnpDevice.cs │ ├── IReceiver.cs │ ├── ISignatureService.cs │ ├── ITransactionBuilder.cs │ ├── ITransactionKeyResolver.cs │ └── IUnconfirmedTransactionPool.cs ├── Models │ ├── Block.cs │ ├── BlockHeader.cs │ ├── BlockchainOptions.cs │ ├── Instruction.cs │ ├── InstructionTypeAttribute.cs │ ├── KeyPair.cs │ ├── KnownPeer.cs │ ├── MerkleNode.cs │ ├── StaticNetworkParameters.cs │ ├── Transaction.cs │ ├── TransactionResponse.cs │ └── ValidInstructionType.cs ├── NBlockchain.csproj ├── Rules │ ├── BlockContentThresholdRule.cs │ ├── IBlockRule.cs │ └── ITransactionRule.cs ├── ServiceCollectionExtensions.cs └── Services │ ├── AddressEncoder.cs │ ├── AsymetricCryptographyService.cs │ ├── BlockMiner.cs │ ├── BlockVerifier.cs │ ├── BlockbaseTransactionBuilder.cs │ ├── BlockchainNode.cs │ ├── ByteArrayComparer.cs │ ├── ByteArrayEqualityComparer.cs │ ├── Database │ ├── BlockStatistics.cs │ ├── DataConnection.cs │ ├── DefaultBlockRepository.cs │ ├── DefaultPeerRepository.cs │ ├── InstructionRepository.cs │ ├── InstructionStatistics.cs │ ├── PersistedBlock.cs │ ├── PersistedEntity.cs │ └── PersistedInstruction.cs │ ├── DateTimeProvider.cs │ ├── DefaultSignatureService.cs │ ├── DifficultyCalculator.cs │ ├── ExpectedBlockList.cs │ ├── ForkRebaser.cs │ ├── HashTester.cs │ ├── Hashers │ ├── DoubleSHA256Hasher.cs │ ├── SHA1Hasher.cs │ └── SHA256Hasher.cs │ ├── MerkelNodeComparer.cs │ ├── MerkleTreeBuilder.cs │ ├── NatTraversal │ ├── NoTraversal.cs │ ├── StaticPortForwarding.cs │ ├── UpnpAutodetectPortForwarding.cs │ └── UpnpStaticPortForwarding.cs │ ├── Net │ ├── Handshake.cs │ ├── InProcessPeerNetwork.cs │ ├── OwnAddressResolver.cs │ ├── PeerConnection.cs │ └── TcpPeerNetwork.cs │ ├── PeerDiscovery │ ├── ManualPeerDiscovery.cs │ ├── MulticastDiscovery.cs │ ├── StaticPeerDiscovery.cs │ └── UniversalPnPDiscovery.cs │ ├── ProofOfWorkConsensus.cs │ ├── Receiver.cs │ ├── TransactionBuilder.cs │ ├── TransactionKeyResolver.cs │ └── UnconfirmedTransactionPool.cs ├── Providers └── NBlockchain.MongoDB │ ├── Models │ ├── PersistedBlock.cs │ ├── PersistedInstruction.cs │ └── PersistedTransaction.cs │ ├── NBlockchain.MongoDB.csproj │ ├── README.md │ ├── ServiceCollectionExtensions.cs │ └── Services │ ├── MongoBlockRepository.cs │ ├── MongoInstructionRepository.cs │ └── MongoPeerDirectory.cs ├── README.md ├── Samples └── DigitalCurrency │ ├── DigitalCurrency.csproj │ ├── Program.cs │ ├── Repositories │ ├── ICustomInstructionRepository.cs │ ├── LiteDb │ │ └── CustomInstructionRepository.cs │ └── Mongo │ │ └── CustomMongoInstructionRepository.cs │ ├── Rules │ ├── BalanceRule.cs │ ├── CoinbaseBlockRule.cs │ └── CoinbaseTransactionRule.cs │ ├── Transactions │ ├── CoinbaseBuilder.cs │ ├── CoinbaseInstruction.cs │ ├── TransferInstruction.cs │ └── ValueInstruction.cs │ └── readme.md ├── ScratchPad ├── Program.cs └── ScratchPad.csproj ├── Tests ├── NBlockchain.Tests.Scenarios │ ├── Common │ │ ├── BaseBuilder.cs │ │ ├── Helpers.cs │ │ └── TestTransaction.cs │ ├── NBlockchain.Tests.Scenarios.csproj │ └── NodeSync │ │ └── NodeOnboardingScenarios.cs └── NBlockchain.Tests │ ├── NBlockchain.Tests.csproj │ └── Services │ ├── BlockchainNodeTests.cs │ └── MerkleTreeBuilderTests.cs └── doc └── readme.md /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/LICENSE -------------------------------------------------------------------------------- /NBlockchain.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain.sln -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IAddressEncoder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IAddressEncoder.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IAsymetricCryptographyService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IAsymetricCryptographyService.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IBlockMiner.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IBlockMiner.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IBlockRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IBlockRepository.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IBlockVerifier.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IBlockVerifier.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IBlockbaseTransactionBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IBlockbaseTransactionBuilder.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IBlockchainNode.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IBlockchainNode.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IConsensusMethod.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IConsensusMethod.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IDataConnection.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IDataConnection.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IDateTimeProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IDateTimeProvider.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IDifficultyCalculator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IDifficultyCalculator.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IExpectedBlockList.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IExpectedBlockList.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IForkRebaser.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IForkRebaser.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IHashTester.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IHashTester.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IHasher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IHasher.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IInstructionRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IInstructionRepository.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IMerkleTreeBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IMerkleTreeBuilder.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/INatTraversal.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/INatTraversal.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/INetworkParameters.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/INetworkParameters.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IOwnAddressResolver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IOwnAddressResolver.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IPeerDiscoveryService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IPeerDiscoveryService.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IPeerNetwork.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IPeerNetwork.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IProvideUpnpDevice.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IProvideUpnpDevice.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IReceiver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IReceiver.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/ISignatureService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/ISignatureService.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/ITransactionBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/ITransactionBuilder.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/ITransactionKeyResolver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/ITransactionKeyResolver.cs -------------------------------------------------------------------------------- /NBlockchain/Interfaces/IUnconfirmedTransactionPool.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Interfaces/IUnconfirmedTransactionPool.cs -------------------------------------------------------------------------------- /NBlockchain/Models/Block.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/Block.cs -------------------------------------------------------------------------------- /NBlockchain/Models/BlockHeader.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/BlockHeader.cs -------------------------------------------------------------------------------- /NBlockchain/Models/BlockchainOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/BlockchainOptions.cs -------------------------------------------------------------------------------- /NBlockchain/Models/Instruction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/Instruction.cs -------------------------------------------------------------------------------- /NBlockchain/Models/InstructionTypeAttribute.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/InstructionTypeAttribute.cs -------------------------------------------------------------------------------- /NBlockchain/Models/KeyPair.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/KeyPair.cs -------------------------------------------------------------------------------- /NBlockchain/Models/KnownPeer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/KnownPeer.cs -------------------------------------------------------------------------------- /NBlockchain/Models/MerkleNode.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/MerkleNode.cs -------------------------------------------------------------------------------- /NBlockchain/Models/StaticNetworkParameters.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/StaticNetworkParameters.cs -------------------------------------------------------------------------------- /NBlockchain/Models/Transaction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/Transaction.cs -------------------------------------------------------------------------------- /NBlockchain/Models/TransactionResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/TransactionResponse.cs -------------------------------------------------------------------------------- /NBlockchain/Models/ValidInstructionType.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Models/ValidInstructionType.cs -------------------------------------------------------------------------------- /NBlockchain/NBlockchain.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/NBlockchain.csproj -------------------------------------------------------------------------------- /NBlockchain/Rules/BlockContentThresholdRule.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Rules/BlockContentThresholdRule.cs -------------------------------------------------------------------------------- /NBlockchain/Rules/IBlockRule.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Rules/IBlockRule.cs -------------------------------------------------------------------------------- /NBlockchain/Rules/ITransactionRule.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Rules/ITransactionRule.cs -------------------------------------------------------------------------------- /NBlockchain/ServiceCollectionExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/ServiceCollectionExtensions.cs -------------------------------------------------------------------------------- /NBlockchain/Services/AddressEncoder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/AddressEncoder.cs -------------------------------------------------------------------------------- /NBlockchain/Services/AsymetricCryptographyService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/AsymetricCryptographyService.cs -------------------------------------------------------------------------------- /NBlockchain/Services/BlockMiner.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/BlockMiner.cs -------------------------------------------------------------------------------- /NBlockchain/Services/BlockVerifier.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/BlockVerifier.cs -------------------------------------------------------------------------------- /NBlockchain/Services/BlockbaseTransactionBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/BlockbaseTransactionBuilder.cs -------------------------------------------------------------------------------- /NBlockchain/Services/BlockchainNode.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/BlockchainNode.cs -------------------------------------------------------------------------------- /NBlockchain/Services/ByteArrayComparer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/ByteArrayComparer.cs -------------------------------------------------------------------------------- /NBlockchain/Services/ByteArrayEqualityComparer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/ByteArrayEqualityComparer.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Database/BlockStatistics.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Database/BlockStatistics.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Database/DataConnection.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Database/DataConnection.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Database/DefaultBlockRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Database/DefaultBlockRepository.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Database/DefaultPeerRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Database/DefaultPeerRepository.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Database/InstructionRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Database/InstructionRepository.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Database/InstructionStatistics.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Database/InstructionStatistics.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Database/PersistedBlock.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Database/PersistedBlock.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Database/PersistedEntity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Database/PersistedEntity.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Database/PersistedInstruction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Database/PersistedInstruction.cs -------------------------------------------------------------------------------- /NBlockchain/Services/DateTimeProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/DateTimeProvider.cs -------------------------------------------------------------------------------- /NBlockchain/Services/DefaultSignatureService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/DefaultSignatureService.cs -------------------------------------------------------------------------------- /NBlockchain/Services/DifficultyCalculator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/DifficultyCalculator.cs -------------------------------------------------------------------------------- /NBlockchain/Services/ExpectedBlockList.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/ExpectedBlockList.cs -------------------------------------------------------------------------------- /NBlockchain/Services/ForkRebaser.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/ForkRebaser.cs -------------------------------------------------------------------------------- /NBlockchain/Services/HashTester.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/HashTester.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Hashers/DoubleSHA256Hasher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Hashers/DoubleSHA256Hasher.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Hashers/SHA1Hasher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Hashers/SHA1Hasher.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Hashers/SHA256Hasher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Hashers/SHA256Hasher.cs -------------------------------------------------------------------------------- /NBlockchain/Services/MerkelNodeComparer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/MerkelNodeComparer.cs -------------------------------------------------------------------------------- /NBlockchain/Services/MerkleTreeBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/MerkleTreeBuilder.cs -------------------------------------------------------------------------------- /NBlockchain/Services/NatTraversal/NoTraversal.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/NatTraversal/NoTraversal.cs -------------------------------------------------------------------------------- /NBlockchain/Services/NatTraversal/StaticPortForwarding.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/NatTraversal/StaticPortForwarding.cs -------------------------------------------------------------------------------- /NBlockchain/Services/NatTraversal/UpnpAutodetectPortForwarding.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/NatTraversal/UpnpAutodetectPortForwarding.cs -------------------------------------------------------------------------------- /NBlockchain/Services/NatTraversal/UpnpStaticPortForwarding.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/NatTraversal/UpnpStaticPortForwarding.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Net/Handshake.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Net/Handshake.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Net/InProcessPeerNetwork.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Net/InProcessPeerNetwork.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Net/OwnAddressResolver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Net/OwnAddressResolver.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Net/PeerConnection.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Net/PeerConnection.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Net/TcpPeerNetwork.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Net/TcpPeerNetwork.cs -------------------------------------------------------------------------------- /NBlockchain/Services/PeerDiscovery/ManualPeerDiscovery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/PeerDiscovery/ManualPeerDiscovery.cs -------------------------------------------------------------------------------- /NBlockchain/Services/PeerDiscovery/MulticastDiscovery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/PeerDiscovery/MulticastDiscovery.cs -------------------------------------------------------------------------------- /NBlockchain/Services/PeerDiscovery/StaticPeerDiscovery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/PeerDiscovery/StaticPeerDiscovery.cs -------------------------------------------------------------------------------- /NBlockchain/Services/PeerDiscovery/UniversalPnPDiscovery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/PeerDiscovery/UniversalPnPDiscovery.cs -------------------------------------------------------------------------------- /NBlockchain/Services/ProofOfWorkConsensus.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/ProofOfWorkConsensus.cs -------------------------------------------------------------------------------- /NBlockchain/Services/Receiver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/Receiver.cs -------------------------------------------------------------------------------- /NBlockchain/Services/TransactionBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/TransactionBuilder.cs -------------------------------------------------------------------------------- /NBlockchain/Services/TransactionKeyResolver.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/TransactionKeyResolver.cs -------------------------------------------------------------------------------- /NBlockchain/Services/UnconfirmedTransactionPool.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/NBlockchain/Services/UnconfirmedTransactionPool.cs -------------------------------------------------------------------------------- /Providers/NBlockchain.MongoDB/Models/PersistedBlock.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Providers/NBlockchain.MongoDB/Models/PersistedBlock.cs -------------------------------------------------------------------------------- /Providers/NBlockchain.MongoDB/Models/PersistedInstruction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Providers/NBlockchain.MongoDB/Models/PersistedInstruction.cs -------------------------------------------------------------------------------- /Providers/NBlockchain.MongoDB/Models/PersistedTransaction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Providers/NBlockchain.MongoDB/Models/PersistedTransaction.cs -------------------------------------------------------------------------------- /Providers/NBlockchain.MongoDB/NBlockchain.MongoDB.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Providers/NBlockchain.MongoDB/NBlockchain.MongoDB.csproj -------------------------------------------------------------------------------- /Providers/NBlockchain.MongoDB/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Providers/NBlockchain.MongoDB/README.md -------------------------------------------------------------------------------- /Providers/NBlockchain.MongoDB/ServiceCollectionExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Providers/NBlockchain.MongoDB/ServiceCollectionExtensions.cs -------------------------------------------------------------------------------- /Providers/NBlockchain.MongoDB/Services/MongoBlockRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Providers/NBlockchain.MongoDB/Services/MongoBlockRepository.cs -------------------------------------------------------------------------------- /Providers/NBlockchain.MongoDB/Services/MongoInstructionRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Providers/NBlockchain.MongoDB/Services/MongoInstructionRepository.cs -------------------------------------------------------------------------------- /Providers/NBlockchain.MongoDB/Services/MongoPeerDirectory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Providers/NBlockchain.MongoDB/Services/MongoPeerDirectory.cs -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/README.md -------------------------------------------------------------------------------- /Samples/DigitalCurrency/DigitalCurrency.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/DigitalCurrency.csproj -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Program.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Repositories/ICustomInstructionRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Repositories/ICustomInstructionRepository.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Repositories/LiteDb/CustomInstructionRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Repositories/LiteDb/CustomInstructionRepository.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Repositories/Mongo/CustomMongoInstructionRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Repositories/Mongo/CustomMongoInstructionRepository.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Rules/BalanceRule.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Rules/BalanceRule.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Rules/CoinbaseBlockRule.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Rules/CoinbaseBlockRule.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Rules/CoinbaseTransactionRule.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Rules/CoinbaseTransactionRule.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Transactions/CoinbaseBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Transactions/CoinbaseBuilder.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Transactions/CoinbaseInstruction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Transactions/CoinbaseInstruction.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Transactions/TransferInstruction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Transactions/TransferInstruction.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/Transactions/ValueInstruction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/Transactions/ValueInstruction.cs -------------------------------------------------------------------------------- /Samples/DigitalCurrency/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Samples/DigitalCurrency/readme.md -------------------------------------------------------------------------------- /ScratchPad/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/ScratchPad/Program.cs -------------------------------------------------------------------------------- /ScratchPad/ScratchPad.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/ScratchPad/ScratchPad.csproj -------------------------------------------------------------------------------- /Tests/NBlockchain.Tests.Scenarios/Common/BaseBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Tests/NBlockchain.Tests.Scenarios/Common/BaseBuilder.cs -------------------------------------------------------------------------------- /Tests/NBlockchain.Tests.Scenarios/Common/Helpers.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Tests/NBlockchain.Tests.Scenarios/Common/Helpers.cs -------------------------------------------------------------------------------- /Tests/NBlockchain.Tests.Scenarios/Common/TestTransaction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Tests/NBlockchain.Tests.Scenarios/Common/TestTransaction.cs -------------------------------------------------------------------------------- /Tests/NBlockchain.Tests.Scenarios/NBlockchain.Tests.Scenarios.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Tests/NBlockchain.Tests.Scenarios/NBlockchain.Tests.Scenarios.csproj -------------------------------------------------------------------------------- /Tests/NBlockchain.Tests.Scenarios/NodeSync/NodeOnboardingScenarios.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Tests/NBlockchain.Tests.Scenarios/NodeSync/NodeOnboardingScenarios.cs -------------------------------------------------------------------------------- /Tests/NBlockchain.Tests/NBlockchain.Tests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Tests/NBlockchain.Tests/NBlockchain.Tests.csproj -------------------------------------------------------------------------------- /Tests/NBlockchain.Tests/Services/BlockchainNodeTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Tests/NBlockchain.Tests/Services/BlockchainNodeTests.cs -------------------------------------------------------------------------------- /Tests/NBlockchain.Tests/Services/MerkleTreeBuilderTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/Tests/NBlockchain.Tests/Services/MerkleTreeBuilderTests.cs -------------------------------------------------------------------------------- /doc/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielgerlag/NBlockchain/HEAD/doc/readme.md --------------------------------------------------------------------------------