ladimolnar / BitcoinDatabaseGenerator

A high performance data transfer tool that can be used to transfer data from Bitcoin Core blockchain files to a SQL Server database
Apache License 2.0
123 stars 53 forks source link

Unknown block version: 536870930 (20000012). #17

Open ccie27599 opened 6 years ago

ccie27599 commented 6 years ago

why?

BitcoinDatabaseGenerator.exe /BlockchainPath E:\Bitcoin\blocks /SqlDbName 7billion BitcoinDatabaseGenerator 1.9 [DEBUG] Active threads: 8

Database "7billion" found. Deleting from database the data about blockchain file: blk00910.dat

AN ERROR OCCURRED: System.Data.SqlClient.SqlException (0x80131904): 执行超时已过期。完成操作之前已超时或服务器未响应。 ---> System.ComponentModel.Win32Exception (0x80004005): 等待的操作过时。 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 在 System.Data.SqlClient.SqlCommand.InternalEndExecuteNonQuery(IAsyncResult asyncResult, String endMethod, Boolean isInternal) 在 System.Data.SqlClient.SqlCommand.EndExecuteNonQueryInternal(IAsyncResult asyncResult) 在 System.Data.SqlClient.SqlCommand.EndExecuteNonQueryAsync(IAsyncResult asyncResult) 在 System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter1.GetResult() 在 AdoNetHelpers.AdoNetLayer.<ExecuteStatementNoResultAsync>d__21.MoveNext() 位置 E:\BitcoinDatabaseGenerator-master\Sources\AdoNetHelpers\AdoNetLayer.cs:行号 411 --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter1.GetResult() 在 BitcoinDataLayerAdoNet.BitcoinDataLayer.d7.MoveNext() 位置 E:\BitcoinDatabaseGenerator-master\Sources\BitcoinDataLayerAdoNet\BitcoinDataLayer.cs:行号 91 --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.GetResult() 在 BitcoinDatabaseGenerator.DatabaseGenerator.d20.MoveNext() 位置 E:\BitcoinDatabaseGenerator-master\Sources\BitcoinDatabaseGenerator\DatabaseGenerator.cs:行号 343 --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.GetResult() 在 BitcoinDatabaseGenerator.DatabaseGenerator.d__8.MoveNext() 位置 E:\BitcoinDatabaseGenerator-master\Sources\BitcoinDatabaseGenerator\DatabaseGenerator.cs:行号 60 ClientConnectionId:c1c092c5-c816-4a7d-ae07-570807c902a3 Error Number:-2,State:0,Class:11

File: blk00910.dat. Transferring data: 14% ERROR: The blockchain contains blocks with an unknown version. Unknown block version: 536870930 (20000012).

File: blk00909.dat. Transferring data: 70% ERROR: The blockchain contains blocks with an unknown version. Unknown block version: 536870930 (20000012).

chenll7 commented 6 years ago

I've encounter the problem in blk00909.dat too.I suspect it is related to certain soft fork of bitcoin(e.g. segwit).Perhaps the author have not made BitcoinDatabaseGenerato be compatible to the soft fork yet. (我在blk00909.dat也遇到这个问题。我觉得可能和segwit这些软分叉有关。作者应该还没有对BitcoinDatabaseGenerator做相关的兼容修改。) Following is the log from my console:

BitcoinDatabaseGenerator 1.9 [DEBUG]
Active threads: 4

Database "bitcoin" found.
Deleting from database the data about blockchain file: blk00909.dat

AN ERROR OCCURRED:
System.Data.SqlClient.SqlException (0x80131904): 执行超时已过期。完成操作之前已超时或服务器未响应。  ---> System.ComponentModel.Win32Exception (0x80004005): 等待的操作 过时。
   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   在 System.Data.SqlClient.SqlCommand.InternalEndExecuteNonQuery(IAsyncResult asyncResult, String endMethod, Boolean isInternal)
   在 System.Data.SqlClient.SqlCommand.EndExecuteNonQueryInternal(IAsyncResult asyncResult)
   在 System.Data.SqlClient.SqlCommand.EndExecuteNonQueryAsync(IAsyncResult asyncResult)
   在 System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   在 AdoNetHelpers.AdoNetLayer.<ExecuteStatementNoResultAsync>d__21.MoveNext() 位置 C:\Users\Bear\Desktop\BitcoinDatabaseGenerator\Sources\AdoNetHelpers\AdoNetLayer.cs:行号 411
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   在 BitcoinDataLayerAdoNet.BitcoinDataLayer.<DeleteLastBlockchainFileAsync>d__7.MoveNext() 位置 C:\Users\Bear\Desktop\BitcoinDatabaseGenerator\Sources\BitcoinDataLayerAdoNet\BitcoinDataLayer.cs:行号 92
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   在 BitcoinDatabaseGenerator.DatabaseGenerator.<DeleteLastBlockchainFileAsync>d__20.MoveNext() 位置 C:\Users\Bear\Desktop\BitcoinDatabaseGenerator\Sources\BitcoinDatabaseGenerator\DatabaseGenerator.cs:行号 343
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
   在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   在 BitcoinDatabaseGenerator.DatabaseGenerator.<GenerateAndPopulateDatabase>d__8.MoveNext() 位置 C:\Users\Bear\Desktop\BitcoinDatabaseGenerator\Sources\BitcoinDatabaseGenerator\DatabaseGenerator.cs:行号 60
ClientConnectionId:63489646-22ef-47da-9281-eea8ae74ebf1
Error Number:-2,State:0,Class:11

  Looking forward to further communication.

ccie27599 commented 6 years ago

so we can't solve this issue until the author fix the bug (update the software)

JRizzly commented 6 years ago

I ran into an issue with connection to the SQL server. Not sure what the issue is... did you guys find an alternative?

ccie27599 commented 6 years ago

I ran SQL server 2017 ,no inssue . but i got another issue which is listed below ,like this

BitcoinDatabaseGenerator.exe /BlockchainPath E:\Bitcoin\blocks /SqlDbName 7billion BitcoinDatabaseGenerator 1.9 [DEBUG] Active threads: 8

Database "7billion" found. Deleting from database the data about blockchain file: blk00910.dat

AN ERROR OCCURRED: System.Data.SqlClient.SqlException (0x80131904): 执行超时已过期。完成操作之前已超时或服务器未响应。 ---> System.ComponentModel.Win32Exception (0x80004005): 等待的操作过时。 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 在 System.Data.SqlClient.SqlCommand.InternalEndExecuteNonQuery(IAsyncResult asyncResult, String endMethod, Boolean isInternal) 在 System.Data.SqlClient.SqlCommand.EndExecuteNonQueryInternal(IAsyncResult asyncResult) 在 System.Data.SqlClient.SqlCommand.EndExecuteNonQueryAsync(IAsyncResult asyncResult) 在 System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization)

chenll7 commented 6 years ago

@JRizzly Did you connect to SQLServer by "Window Authentication" or "SQL Server Authentication"? I suspect that BitcoinDatabaseBitcoin does not support "Window Authentication". 1