Differences to CCompactSize and CVarInt Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Bitcoind crashes directly after startingEmbedding P2Pool technology in Bitcoin CoreI run Bitcoin Core 0.14.1, for Segwit they tell me to “upgrade” to 0.13.1. So confusingCan a raspberry pi zero run bitcoin core 0.16.1 and sync up without downloading the entire blockchain?Solving Bitcoin core's 'ActivateBestChain failed'It's October 2018. ./bitcoin-qt -reindex-chainstate takes forever. Is there a way to speed this up?Extract sender ID and recipient ID of a bitcoin transactionCreate a Double sha256 block and trandactionHow happens the serealization the data in the file blkxxxx.dat in the bitcoinScript Null into raw trasaction bitcoin core
In musical terms, what properties are varied by the human voice to produce different words / syllables?
What does Turing mean by this statement?
Ore hitori de wa kesshite miru koto no deki nai keshiki; It's a view I could never see on my own
Nose gear failure in single prop aircraft: belly landing or nose-gear up landing?
Putting class ranking in CV, but against dept guidelines
Does any scripture mention that forms of God or Goddess are symbolic?
Found this skink in my tomato plant bucket. Is he trapped? Or could he leave if he wanted?
Asymptotics question
Special flights
Relating to the President and obstruction, were Mueller's conclusions preordained?
Moving a wrapfig vertically to encroach partially on a subsection title
What are the main differences between Stargate SG-1 cuts?
The test team as an enemy of development? And how can this be avoided?
GDP with Intermediate Production
Monty Hall Problem-Probability Paradox
Google .dev domain strangely redirects to https
Does silver oxide react with hydrogen sulfide?
How to write capital alpha?
Simple Http Server
Positioning dot before text in math mode
Why not send Voyager 3 and 4 following up the paths taken by Voyager 1 and 2 to re-transmit signals of later as they fly away from Earth?
What is the chair depicted in Cesare Maccari's 1889 painting "Cicerone denuncia Catilina"?
My mentor says to set image to Fine instead of RAW — how is this different from JPG?
Tips to organize LaTeX presentations for a semester
Differences to CCompactSize and CVarInt
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?Bitcoind crashes directly after startingEmbedding P2Pool technology in Bitcoin CoreI run Bitcoin Core 0.14.1, for Segwit they tell me to “upgrade” to 0.13.1. So confusingCan a raspberry pi zero run bitcoin core 0.16.1 and sync up without downloading the entire blockchain?Solving Bitcoin core's 'ActivateBestChain failed'It's October 2018. ./bitcoin-qt -reindex-chainstate takes forever. Is there a way to speed this up?Extract sender ID and recipient ID of a bitcoin transactionCreate a Double sha256 block and trandactionHow happens the serealization the data in the file blkxxxx.dat in the bitcoinScript Null into raw trasaction bitcoin core
I'm developing a parser bitcoin core and I have a problem whit the type CVarInt, I using the decodifier mode of the CCompact size but at the block 976 I Have a problem whit the type, because the value id is unusually, so I have a question why the bitcoin core decided the change implementation to
CCompact size into CVarInt?
What was introduced in the bitcoin core versions to require a change of implementation?
Sorry for my terrible English but I'm learning.
bitcoin-core script bitcoincore-development
add a comment |
I'm developing a parser bitcoin core and I have a problem whit the type CVarInt, I using the decodifier mode of the CCompact size but at the block 976 I Have a problem whit the type, because the value id is unusually, so I have a question why the bitcoin core decided the change implementation to
CCompact size into CVarInt?
What was introduced in the bitcoin core versions to require a change of implementation?
Sorry for my terrible English but I'm learning.
bitcoin-core script bitcoincore-development
add a comment |
I'm developing a parser bitcoin core and I have a problem whit the type CVarInt, I using the decodifier mode of the CCompact size but at the block 976 I Have a problem whit the type, because the value id is unusually, so I have a question why the bitcoin core decided the change implementation to
CCompact size into CVarInt?
What was introduced in the bitcoin core versions to require a change of implementation?
Sorry for my terrible English but I'm learning.
bitcoin-core script bitcoincore-development
I'm developing a parser bitcoin core and I have a problem whit the type CVarInt, I using the decodifier mode of the CCompact size but at the block 976 I Have a problem whit the type, because the value id is unusually, so I have a question why the bitcoin core decided the change implementation to
CCompact size into CVarInt?
What was introduced in the bitcoin core versions to require a change of implementation?
Sorry for my terrible English but I'm learning.
bitcoin-core script bitcoincore-development
bitcoin-core script bitcoincore-development
asked 4 hours ago
vincenzopalazzovincenzopalazzo
256
256
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
CVarInt encoding is only used in the storage of the UTXO set internally, and never in the P2P protocol. CCompactSize is used in a number of places, including the number of transactions per block, the number of inputs and outputs per transaction, and the length of scripts.
If you're parsing block data, you will never encounter a CVarInt. If you're running into problems, it's almost certainly something else, or there is a bug in your CCompactSize decoder.
Oh this is a good news, Unfortunately I don't know exactly what block gives me problems reading the script, because for every blk file I create a json file with the list of blocks, so if I get an error reading I can't generate the json, apparte if not active the logger logs the code, which I will do soon, but for now I know that the last block that reads me converting it to json is the following This
– vincenzopalazzo
3 hours ago
plus i use the library to read bitcoin core files the file is serialize.he exception that raises me is the followingC ++ exception with description" ReadCompactSize (): size too large: iostream error "thrown in the test body.
– vincenzopalazzo
3 hours ago
@vincenzopalazzo That probably means you're trying to decode garbage. There is no guarantee that all bytes in the block file belong to a block; there may be gaps etc
– Pieter Wuille
2 hours ago
So it is not guaranteed that all blocks have only the declared data? I mean, does this mean that in the beginning there may be other things that are not useful data for me? but in this way there must be a reference somewhere to see what is in that beginning file no? Because if bitcoin core uses that data then behind the serialization there is logic
– vincenzopalazzo
2 hours ago
Blocks have well defined data only. But the files can contain garbage in addition to the blocks. There is an index database that stores which position each block is stored at. There is no guarantee that there isn't garbage between blocks (for example, for a crash while writing a block).
– Pieter Wuille
2 hours ago
|
show 3 more comments
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "308"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fbitcoin.stackexchange.com%2fquestions%2f86159%2fdifferences-to-ccompactsize-and-cvarint%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
CVarInt encoding is only used in the storage of the UTXO set internally, and never in the P2P protocol. CCompactSize is used in a number of places, including the number of transactions per block, the number of inputs and outputs per transaction, and the length of scripts.
If you're parsing block data, you will never encounter a CVarInt. If you're running into problems, it's almost certainly something else, or there is a bug in your CCompactSize decoder.
Oh this is a good news, Unfortunately I don't know exactly what block gives me problems reading the script, because for every blk file I create a json file with the list of blocks, so if I get an error reading I can't generate the json, apparte if not active the logger logs the code, which I will do soon, but for now I know that the last block that reads me converting it to json is the following This
– vincenzopalazzo
3 hours ago
plus i use the library to read bitcoin core files the file is serialize.he exception that raises me is the followingC ++ exception with description" ReadCompactSize (): size too large: iostream error "thrown in the test body.
– vincenzopalazzo
3 hours ago
@vincenzopalazzo That probably means you're trying to decode garbage. There is no guarantee that all bytes in the block file belong to a block; there may be gaps etc
– Pieter Wuille
2 hours ago
So it is not guaranteed that all blocks have only the declared data? I mean, does this mean that in the beginning there may be other things that are not useful data for me? but in this way there must be a reference somewhere to see what is in that beginning file no? Because if bitcoin core uses that data then behind the serialization there is logic
– vincenzopalazzo
2 hours ago
Blocks have well defined data only. But the files can contain garbage in addition to the blocks. There is an index database that stores which position each block is stored at. There is no guarantee that there isn't garbage between blocks (for example, for a crash while writing a block).
– Pieter Wuille
2 hours ago
|
show 3 more comments
CVarInt encoding is only used in the storage of the UTXO set internally, and never in the P2P protocol. CCompactSize is used in a number of places, including the number of transactions per block, the number of inputs and outputs per transaction, and the length of scripts.
If you're parsing block data, you will never encounter a CVarInt. If you're running into problems, it's almost certainly something else, or there is a bug in your CCompactSize decoder.
Oh this is a good news, Unfortunately I don't know exactly what block gives me problems reading the script, because for every blk file I create a json file with the list of blocks, so if I get an error reading I can't generate the json, apparte if not active the logger logs the code, which I will do soon, but for now I know that the last block that reads me converting it to json is the following This
– vincenzopalazzo
3 hours ago
plus i use the library to read bitcoin core files the file is serialize.he exception that raises me is the followingC ++ exception with description" ReadCompactSize (): size too large: iostream error "thrown in the test body.
– vincenzopalazzo
3 hours ago
@vincenzopalazzo That probably means you're trying to decode garbage. There is no guarantee that all bytes in the block file belong to a block; there may be gaps etc
– Pieter Wuille
2 hours ago
So it is not guaranteed that all blocks have only the declared data? I mean, does this mean that in the beginning there may be other things that are not useful data for me? but in this way there must be a reference somewhere to see what is in that beginning file no? Because if bitcoin core uses that data then behind the serialization there is logic
– vincenzopalazzo
2 hours ago
Blocks have well defined data only. But the files can contain garbage in addition to the blocks. There is an index database that stores which position each block is stored at. There is no guarantee that there isn't garbage between blocks (for example, for a crash while writing a block).
– Pieter Wuille
2 hours ago
|
show 3 more comments
CVarInt encoding is only used in the storage of the UTXO set internally, and never in the P2P protocol. CCompactSize is used in a number of places, including the number of transactions per block, the number of inputs and outputs per transaction, and the length of scripts.
If you're parsing block data, you will never encounter a CVarInt. If you're running into problems, it's almost certainly something else, or there is a bug in your CCompactSize decoder.
CVarInt encoding is only used in the storage of the UTXO set internally, and never in the P2P protocol. CCompactSize is used in a number of places, including the number of transactions per block, the number of inputs and outputs per transaction, and the length of scripts.
If you're parsing block data, you will never encounter a CVarInt. If you're running into problems, it's almost certainly something else, or there is a bug in your CCompactSize decoder.
answered 4 hours ago
Pieter WuillePieter Wuille
48.6k3100163
48.6k3100163
Oh this is a good news, Unfortunately I don't know exactly what block gives me problems reading the script, because for every blk file I create a json file with the list of blocks, so if I get an error reading I can't generate the json, apparte if not active the logger logs the code, which I will do soon, but for now I know that the last block that reads me converting it to json is the following This
– vincenzopalazzo
3 hours ago
plus i use the library to read bitcoin core files the file is serialize.he exception that raises me is the followingC ++ exception with description" ReadCompactSize (): size too large: iostream error "thrown in the test body.
– vincenzopalazzo
3 hours ago
@vincenzopalazzo That probably means you're trying to decode garbage. There is no guarantee that all bytes in the block file belong to a block; there may be gaps etc
– Pieter Wuille
2 hours ago
So it is not guaranteed that all blocks have only the declared data? I mean, does this mean that in the beginning there may be other things that are not useful data for me? but in this way there must be a reference somewhere to see what is in that beginning file no? Because if bitcoin core uses that data then behind the serialization there is logic
– vincenzopalazzo
2 hours ago
Blocks have well defined data only. But the files can contain garbage in addition to the blocks. There is an index database that stores which position each block is stored at. There is no guarantee that there isn't garbage between blocks (for example, for a crash while writing a block).
– Pieter Wuille
2 hours ago
|
show 3 more comments
Oh this is a good news, Unfortunately I don't know exactly what block gives me problems reading the script, because for every blk file I create a json file with the list of blocks, so if I get an error reading I can't generate the json, apparte if not active the logger logs the code, which I will do soon, but for now I know that the last block that reads me converting it to json is the following This
– vincenzopalazzo
3 hours ago
plus i use the library to read bitcoin core files the file is serialize.he exception that raises me is the followingC ++ exception with description" ReadCompactSize (): size too large: iostream error "thrown in the test body.
– vincenzopalazzo
3 hours ago
@vincenzopalazzo That probably means you're trying to decode garbage. There is no guarantee that all bytes in the block file belong to a block; there may be gaps etc
– Pieter Wuille
2 hours ago
So it is not guaranteed that all blocks have only the declared data? I mean, does this mean that in the beginning there may be other things that are not useful data for me? but in this way there must be a reference somewhere to see what is in that beginning file no? Because if bitcoin core uses that data then behind the serialization there is logic
– vincenzopalazzo
2 hours ago
Blocks have well defined data only. But the files can contain garbage in addition to the blocks. There is an index database that stores which position each block is stored at. There is no guarantee that there isn't garbage between blocks (for example, for a crash while writing a block).
– Pieter Wuille
2 hours ago
Oh this is a good news, Unfortunately I don't know exactly what block gives me problems reading the script, because for every blk file I create a json file with the list of blocks, so if I get an error reading I can't generate the json, apparte if not active the logger logs the code, which I will do soon, but for now I know that the last block that reads me converting it to json is the following This
– vincenzopalazzo
3 hours ago
Oh this is a good news, Unfortunately I don't know exactly what block gives me problems reading the script, because for every blk file I create a json file with the list of blocks, so if I get an error reading I can't generate the json, apparte if not active the logger logs the code, which I will do soon, but for now I know that the last block that reads me converting it to json is the following This
– vincenzopalazzo
3 hours ago
plus i use the library to read bitcoin core files the file is serialize.he exception that raises me is the following
C ++ exception with description" ReadCompactSize (): size too large: iostream error "thrown in the test body.
– vincenzopalazzo
3 hours ago
plus i use the library to read bitcoin core files the file is serialize.he exception that raises me is the following
C ++ exception with description" ReadCompactSize (): size too large: iostream error "thrown in the test body.
– vincenzopalazzo
3 hours ago
@vincenzopalazzo That probably means you're trying to decode garbage. There is no guarantee that all bytes in the block file belong to a block; there may be gaps etc
– Pieter Wuille
2 hours ago
@vincenzopalazzo That probably means you're trying to decode garbage. There is no guarantee that all bytes in the block file belong to a block; there may be gaps etc
– Pieter Wuille
2 hours ago
So it is not guaranteed that all blocks have only the declared data? I mean, does this mean that in the beginning there may be other things that are not useful data for me? but in this way there must be a reference somewhere to see what is in that beginning file no? Because if bitcoin core uses that data then behind the serialization there is logic
– vincenzopalazzo
2 hours ago
So it is not guaranteed that all blocks have only the declared data? I mean, does this mean that in the beginning there may be other things that are not useful data for me? but in this way there must be a reference somewhere to see what is in that beginning file no? Because if bitcoin core uses that data then behind the serialization there is logic
– vincenzopalazzo
2 hours ago
Blocks have well defined data only. But the files can contain garbage in addition to the blocks. There is an index database that stores which position each block is stored at. There is no guarantee that there isn't garbage between blocks (for example, for a crash while writing a block).
– Pieter Wuille
2 hours ago
Blocks have well defined data only. But the files can contain garbage in addition to the blocks. There is an index database that stores which position each block is stored at. There is no guarantee that there isn't garbage between blocks (for example, for a crash while writing a block).
– Pieter Wuille
2 hours ago
|
show 3 more comments
Thanks for contributing an answer to Bitcoin Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fbitcoin.stackexchange.com%2fquestions%2f86159%2fdifferences-to-ccompactsize-and-cvarint%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown