Got! I had to apply the mask of 0xff because the inputStream.read()
function returns ints while i was getting bytes from the bytes[] array.

On 26 February 2017 at 15:41, Jameson Lopp <jameson.l...@gmail.com> wrote:

> The logic looks correct to me; it blows up on the very first block? Have
> you tried any other .dat files?
>
> I hope that this import tool hasn't become obsolete due to any changes in
> how bitcoind stores blocks on disk...
>
> On Sun, Feb 26, 2017 at 3:00 PM, Nishil Shah <nishil.sha...@gmail.com>
> wrote:
>
>> Oh, that's perfect. I'm very, very close. Do you mind taking at a short
>> snippet of my code I put into this test file:
>>
>> https://gist.github.com/anonymous/8b748d8a3810515be8d9349768eb92e4
>>
>> So, I replicated most of the logic found in BlockFileLoader.java. Rather
>> than reading from input stream, I am trying to keep and index to iterate
>> through the actual bytes themselves.
>>
>> Line 66 yields the error: NegativeArraySizeException at
>> org.bitcoinj.core.Message.readBytes. I'm guessing that my index is wrong
>> at some point. Can't spot the bug, however.
>>
>> Keep in mind, I want to build from the bytes array, because in another
>> situation I do not want to use the FileInputStream.
>>
>> Any ideas? Thank you so much.
>>
>> On 25 February 2017 at 16:34, Jameson Lopp <jameson.l...@gmail.com>
>> wrote:
>>
>>> Aha, if you can somehow get access to the bytes then you should be able
>>> to duplicate the byte logic here: https://github.com/bitco
>>> inj/bitcoinj/blob/3177bd52a2bfa491c5902e95b8840030e1a31159/c
>>> ore/src/main/java/org/bitcoinj/utils/BlockFileLoader.java#L129
>>>
>>> Basically, you need to do some low level byte parsing so that you can
>>> eventually read in what the size of the next Block is, then you can take
>>> the next N bytes and pass them to the deserializer in order to actually
>>> construct the Block object: https://github.com/bit
>>> coinj/bitcoinj/blob/3177bd52a2bfa491c5902e95b8840030e1a31159
>>> /core/src/main/java/org/bitcoinj/utils/BlockFileLoader.java#L152
>>>
>>> - Jameson
>>>
>>> On Sat, Feb 25, 2017 at 5:20 PM, Nishil Shah <nishil.sha...@gmail.com>
>>> wrote:
>>>
>>>> Figured it out. I'm using hadoop and the files are stored on the
>>>> distributed file system. Need to find a workaround. If I read all the bytes
>>>> from the file, can I construct a block with it by passing it in to the
>>>> Block constructor? What exactly is the "payloadBytes" parameter?
>>>>
>>>> Thanks.
>>>>
>>>> On 22 February 2017 at 16:49, Jameson Lopp <jameson.l...@gmail.com>
>>>> wrote:
>>>>
>>>>> That's quite odd; it sounds like you didn't actually add the File(s)
>>>>> to the List. Did you do a .exists() check on them like it does here?
>>>>> https://github.com/bitcoinj/bitcoinj/blob/3177bd52a2bf
>>>>> a491c5902e95b8840030e1a31159/core/src/main/java/org/bitcoinj
>>>>> /utils/BlockFileLoader.java#L67
>>>>>
>>>>> I don't think the different styles of getting the params should
>>>>> matter. Feel free to share your code.
>>>>>
>>>>> On Wed, Feb 22, 2017 at 3:14 PM, Nishil Shah <nishil.sha...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Ah, I can't check right now, but I remember I was using new
>>>>>> MainNetParams() as opposed to MainNetParams.get(). Could that be the
>>>>>> difference?
>>>>>>
>>>>>> On 22 February 2017 at 12:53, Nishil Shah <nishil.sha...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> next() just complains that there is no next item in the iterator.
>>>>>>> Does this mean the I/O failed? According to the docs, the 
>>>>>>> BlockFileLoader
>>>>>>> swallows I/O exceptions, so I can't see the I/O error.
>>>>>>>
>>>>>>> On 21 February 2017 at 10:31, Jameson Lopp <jameson.l...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> You should definitely be able to build your own List<File> list
>>>>>>>> that you pass to the loader - I've done this myself in the past.
>>>>>>>>
>>>>>>>> What error are you seeing?
>>>>>>>>
>>>>>>>> On Mon, Feb 20, 2017 at 4:20 PM, Nishil Shah <
>>>>>>>> nishil.sha...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> I would use that List to initialize the block file loader.
>>>>>>>>>
>>>>>>>>> On 20 February 2017 at 15:19, Nishil Shah <nishil.sha...@gmail.com
>>>>>>>>> > wrote:
>>>>>>>>>
>>>>>>>>>> I see, thanks. One last question: So shouldn't I be able to
>>>>>>>>>> simply build a List<File> and append paths to my block files
>>>>>>>>>> "/path/to/blk00000.dat"? I tried this and when I do 
>>>>>>>>>> blockFileLoader.next()
>>>>>>>>>> I get an error. Don't think this works.
>>>>>>>>>>
>>>>>>>>>> On 19 February 2017 at 03:25, Jameson Lopp <
>>>>>>>>>> jameson.l...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Right, getReferenceClientList
>>>>>>>>>>> <https://github.com/bitcoinj/bitcoinj/blob/3177bd52a2bfa491c5902e95b8840030e1a31159/core/src/main/java/org/bitcoinj/utils/BlockFileLoader.java#L53>
>>>>>>>>>>> just tries to be smart and figure out the location of your block 
>>>>>>>>>>> files
>>>>>>>>>>> automatically. If it doesn't work for your system, you can model 
>>>>>>>>>>> its logic
>>>>>>>>>>> to create your own function that builds a list of your block files.
>>>>>>>>>>>
>>>>>>>>>>> For your purposes, I'm assuming you're analyzing Bitcoin on
>>>>>>>>>>> mainnet, so you'd pass MainNetParams.get(). The only other thing 
>>>>>>>>>>> for you to
>>>>>>>>>>> figure out then would be your data storage, which would be your 
>>>>>>>>>>> "chain"
>>>>>>>>>>> object or whatever function to which you pass the blocks to be 
>>>>>>>>>>> processed.
>>>>>>>>>>>
>>>>>>>>>>> - Jameson
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Feb 19, 2017 at 2:00 AM, Nishil Shah <
>>>>>>>>>>> nishil.sha...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> It doesn't take in a file name?
>>>>>>>>>>>>
>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>
>>>>>>>>>>>> On Feb 19, 2017, at 12:33 AM, Jameson Lopp <
>>>>>>>>>>>> jameson.l...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> I think what you want is the BlockFileLoader, as seen here in
>>>>>>>>>>>> the BlockImporter: https://github.
>>>>>>>>>>>> com/bitcoinj/bitcoinj/blob/master/tools/src/main/java/org/bi
>>>>>>>>>>>> tcoinj/tools/BlockImporter.java#L67
>>>>>>>>>>>>
>>>>>>>>>>>> - Jameson
>>>>>>>>>>>>
>>>>>>>>>>>> On Sat, Feb 18, 2017 at 11:51 PM, Nishil Shah <
>>>>>>>>>>>> nishil.sha...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Is there anyway to import blk?????.dat files individually and
>>>>>>>>>>>>> parse them into Block objects? I'm not trying to use any network
>>>>>>>>>>>>> connections. I want to get everything from disk if possible to 
>>>>>>>>>>>>> make my
>>>>>>>>>>>>> computations/processing as fast as possible because I want parse 
>>>>>>>>>>>>> many files
>>>>>>>>>>>>> in parallel. I've read about some "block importer" tool but can't 
>>>>>>>>>>>>> really
>>>>>>>>>>>>> see how to use it in my situation. Thanks.
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>>> Google Groups "bitcoinj" group.
>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>>>> it, send an email to bitcoinj+unsubscr...@googlegroups.com.
>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> You received this message because you are subscribed to a topic
>>>>>>>>>>>> in the Google Groups "bitcoinj" group.
>>>>>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>>>>>> https://groups.google.com/d/topic/bitcoinj/4wB6-i7ys8E/unsub
>>>>>>>>>>>> scribe.
>>>>>>>>>>>> To unsubscribe from this group and all its topics, send an
>>>>>>>>>>>> email to bitcoinj+unsubscr...@googlegroups.com.
>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>>> Google Groups "bitcoinj" group.
>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>>> it, send an email to bitcoinj+unsubscr...@googlegroups.com.
>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> You received this message because you are subscribed to a topic
>>>>>>>>>>> in the Google Groups "bitcoinj" group.
>>>>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>>>>> https://groups.google.com/d/topic/bitcoinj/4wB6-i7ys8E/unsub
>>>>>>>>>>> scribe.
>>>>>>>>>>> To unsubscribe from this group and all its topics, send an email
>>>>>>>>>>> to bitcoinj+unsubscr...@googlegroups.com.
>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "bitcoinj" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to bitcoinj+unsubscr...@googlegroups.com.
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>>> the Google Groups "bitcoinj" group.
>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>> https://groups.google.com/d/topic/bitcoinj/4wB6-i7ys8E/unsubscribe.
>>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>>> bitcoinj+unsubscr...@googlegroups.com.
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "bitcoinj" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to bitcoinj+unsubscr...@googlegroups.com.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "bitcoinj" group.
>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>>>> pic/bitcoinj/4wB6-i7ys8E/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> bitcoinj+unsubscr...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "bitcoinj" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to bitcoinj+unsubscr...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "bitcoinj" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>> pic/bitcoinj/4wB6-i7ys8E/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> bitcoinj+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "bitcoinj" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to bitcoinj+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "bitcoinj" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/bitcoinj/4wB6-i7ys8E/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> bitcoinj+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"bitcoinj" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to bitcoinj+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to