Differences to CCompactSize and CVarInt Announcing the arrival of Valued Associate #679: Cesar...

One-one communication

What would you call this weird metallic apparatus that allows you to lift people?

Most effective melee weapons for arboreal combat? (pre-gunpowder technology)

Trying to understand entropy as a novice in thermodynamics

If Windows 7 doesn't support WSL, then what is "Subsystem for UNIX-based Applications"?

Is it dangerous to install hacking tools on my private linux machine?

After Sam didn't return home in the end, were he and Al still friends?

Printing attributes of selection in ArcPy?

How to change the tick of the color bar legend to black

Tannaka duality for semisimple groups

How does light 'choose' between wave and particle behaviour?

Is multiple magic items in one inherently imbalanced?

Does the Black Tentacles spell do damage twice at the start of turn to an already restrained creature?

Random body shuffle every night—can we still function?

Constant factor of an array

What is the difference between a "ranged attack" and a "ranged weapon attack"?

In musical terms, what properties are varied by the human voice to produce different words / syllables?

How many time has Arya actually used Needle?

Should a wizard buy fine inks every time he want to copy spells into his spellbook?

Flight departed from the gate 5 min before scheduled departure time. Refund options

What is the "studentd" process?

Why datecode is SO IMPORTANT to chip manufacturers?

How were pictures turned from film to a big picture in a picture frame before digital scanning?

What does Turing mean by this statement?



Differences to CCompactSize and CVarInt



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
Vote early, vote often!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












2















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.










share|improve this question



























    2















    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.










    share|improve this question

























      2












      2








      2








      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.










      share|improve this question














      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






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 11 hours ago









      vincenzopalazzovincenzopalazzo

      306




      306






















          1 Answer
          1






          active

          oldest

          votes


















          2














          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.






          share|improve this answer
























          • 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
            9 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
            9 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
            8 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
            8 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
            8 hours ago












          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
          });


          }
          });














          draft saved

          draft discarded


















          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









          2














          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.






          share|improve this answer
























          • 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
            9 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
            9 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
            8 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
            8 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
            8 hours ago
















          2














          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.






          share|improve this answer
























          • 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
            9 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
            9 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
            8 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
            8 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
            8 hours ago














          2












          2








          2







          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.






          share|improve this answer













          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.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 10 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
            9 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
            9 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
            8 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
            8 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
            8 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
            9 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
            9 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
            8 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
            8 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
            8 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
          9 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
          9 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
          9 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
          9 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
          8 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
          8 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
          8 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
          8 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
          8 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
          8 hours ago


















          draft saved

          draft discarded




















































          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.




          draft saved


          draft discarded














          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





















































          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







          Popular posts from this blog

          Couldn't open a raw socket. Error: Permission denied (13) (nmap)Is it possible to run networking commands...

          VNC viewer RFB protocol error: bad desktop size 0x0I Cannot Type the Key 'd' (lowercase) in VNC Viewer...

          Why not use the yoke to control yaw, as well as pitch and roll? Announcing the arrival of...