X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=Novacoin%2FCBlockStore.cs;h=fb60e2b9e4b07c0fbecb1768ec49019563205f41;hb=886861c2656fd556145c7d46a2002c169dacc2f6;hp=1c70f01f088e621ed909e9858db031e08778382f;hpb=1f2cbf0bc6a47aaf3bb6b315ad3a3ef73b7d90b4;p=NovacoinLibrary.git
diff --git a/Novacoin/CBlockStore.cs b/Novacoin/CBlockStore.cs
index 1c70f01..fb60e2b 100644
--- a/Novacoin/CBlockStore.cs
+++ b/Novacoin/CBlockStore.cs
@@ -273,7 +273,7 @@ namespace Novacoin
/// Result
public bool ReadFromFile(ref Stream reader, out CTransaction tx)
{
- var buffer = new byte[250000]; // Max transaction size is 250kB
+ var buffer = new byte[CTransaction.nMaxTxSize];
tx = null;
try
@@ -369,12 +369,7 @@ namespace Novacoin
///
/// Block file stream with read access
///
- private Stream reader;
-
- ///
- /// Block file stream with write access
- ///
- private Stream writer;
+ private Stream fStreamReadWrite;
///
/// Init the block storage manager.
@@ -389,9 +384,7 @@ namespace Novacoin
bool firstInit = !File.Exists(strDbFile);
dbConn = new SQLiteConnection(new SQLitePlatformGeneric(), strDbFile);
- var fStreamReadWrite = File.Open(strBlockFile, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
- reader = new BinaryReader(fStreamReadWrite).BaseStream;
- writer = new BinaryWriter(fStreamReadWrite).BaseStream;
+ fStreamReadWrite = File.Open(strBlockFile, FileMode.OpenOrCreate, FileAccess.ReadWrite);
if (firstInit)
{
@@ -431,6 +424,7 @@ namespace Novacoin
public bool GetTransaction(Hash256 TxID, ref CTransaction tx)
{
+ var reader = new BinaryReader(fStreamReadWrite).BaseStream;
var QueryTx = dbConn.Query("select * from [TransactionStorage] where [TransactionHash] = ?", (byte[])TxID);
if (QueryTx.Count == 1)
@@ -445,6 +439,7 @@ namespace Novacoin
private bool AddItemToIndex(ref CBlockStoreItem itemTemplate, ref CBlock block)
{
+ var writer = new BinaryWriter(fStreamReadWrite).BaseStream;
var blockHash = new ScryptHash256(itemTemplate.Hash);
if (blockMap.ContainsKey(blockHash))
@@ -527,7 +522,7 @@ namespace Novacoin
uint nHeight = prevBlockCursor.nHeight + 1;
// Check timestamp against prev
- if (NetInfo.FutureDrift(block.header.nTime) < prevBlockHeader.nTime)
+ if (NetUtils.FutureDrift(block.header.nTime) < prevBlockHeader.nTime)
{
// block's timestamp is too early
return false;
@@ -562,6 +557,8 @@ namespace Novacoin
public bool GetBlock(ScryptHash256 blockHash, ref CBlock block)
{
+ var reader = new BinaryReader(fStreamReadWrite).BaseStream;
+
var QueryBlock = dbConn.Query("select * from [BlockStorage] where [Hash] = ?", (byte[])blockHash);
if (QueryBlock.Count == 1)
@@ -664,7 +661,7 @@ namespace Novacoin
var nOffset = 0L;
- var buffer = new byte[1000000]; // Max block size is 1Mb
+ var buffer = new byte[CBlock.nMaxBlockSize]; // Max block size is 1Mb
var intBuffer = new byte[4];
var fStream2 = File.OpenRead(BlockFile);
@@ -747,8 +744,7 @@ namespace Novacoin
{
// Free other state (managed objects).
- reader.Dispose();
- writer.Dispose();
+ fStreamReadWrite.Dispose();
}
if (dbConn != null)