Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    Feathercoin Block chain analysis

    Feathercoin Discussion
    3
    11
    1695
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • wrapper
      wrapper Moderators last edited by

      I’m just doing some analysis of the Feathercoin block chain, which doesn’t make sence, so I probably need double checking. Think of this as version 0.5 alpha of the report.

      http://cryptocoinexplorer.com:5750/

      Currency Code Block Time Started Age (days) Coins Created
      Feathercoin FTC 50781 2013-07-16 08:49:25 2011-10-07 648.059 10150250

      I was trying to calculate the amount of Transaction fees paid so 50781 * 200 = 10,156,200 coins mined

      and Transaction fees > 10,150,250 - 10,156,200 = -5,950

      I’ve also attached the block predicted coin start date chart.

      see also http://forum.feathercoin.com/index.php?topic=2741.0

      for the other coin analysis charts I’ve done, which I’m going to repeat in the future so we can see any trends developing.

      It was a quite a bit of work to un-obscure the data, so any tips greatly appreciated.

      [attachment deleted by admin]

      1 Reply Last reply Reply Quote 0
      • ghostlander
        ghostlander Regular Member last edited by

        Transaction fees are paid by people who send payments. You’re talking about new block rewards issued to miners. The Feathercoin Explorer you’re referring to displays incorrect amount of FTC in circulation: it must be a multiple of 200, not 50. Our block explorer is correct.

        1 Reply Last reply Reply Quote 0
        • G
          groll Regular Member last edited by

          i don’t know why but some block are generate with 50 not 200. this probably explain the difference. I have not check when this happen exactly, possibly some < > instead of

          1 Reply Last reply Reply Quote 0
          • wrapper
            wrapper Moderators last edited by

            Hi Ghostlander using Feathercoin Blockchain figures

            Currency Code Block Time Started Age (days) Coins Created Avg Coin Age % CoinDD Block Rewards Coins-Blocks
            Feathercoin FTC 50852 16/07/13 15:48 2013-04-16 90.7787 10164450 37.9018 39.19% 10170400 -5950

            50852 blocks * 200 = Total coins mined block reward = 10170400

            Total coins = 10164450

            Therefore 10164450 - 10170400 = -5950

            You are correct the transaction fees are already paid, so there is no extra money, so this must be an error in total coins calculation or mined coins that had no address to go to?

            We could do with a way of finding how much transaction fees are being paid.

            1 Reply Last reply Reply Quote 0
            • G
              groll Regular Member last edited by

              [quote]Therefore 10164450 - 10170400 = -5950[/quote]

              see block 49343 it get 50 not 200 as rewards and many block are like that explain the difference.

              (not sure but I think it always only comes from 6uNcx3XPvcgToBPeGnxqqx4vk9r4ovoNBp that is give me FTC pool I think, but they find a lot with 200)

              why and why it is accepted as valid block? are the question that now need to be answered

              1 Reply Last reply Reply Quote 0
              • wrapper
                wrapper Moderators last edited by

                I have raised the “Occasional incorrect block payments indicate possible software error” as issue 15 on Feathercoin Github.

                https://github.com/FeatherCoin/FeatherCoin/issues/15

                Is there any other test or investigations we could do to find why the problem occurs, it could be a glitch at one miners set-up for instance is a theory…???

                How could we test that. could we search the block chain to find all the incorrectly paid blocks, to see if it fully explains the coin total disparity?

                I think being completely transparent is essential.

                1 Reply Last reply Reply Quote 0
                • G
                  groll Regular Member last edited by

                  ok i checked the code and total out need to be lower then max so if you want you don’t have to claim all the generation. But a generation need to be in the block. so a new 50 (block 51232) from same address occur so it’s probably a software problem from a custom code not the regular code

                  even if this is givemeFTC adresss it is not on their block list also last was 51217 and we are at 51244.

                  so it’s a backup server or someone using their address.

                  I see actually with 5Gh/s someone with what seems to be more then 50% from 6wyj1e7A8E4VpEqAHje3bNREQASpLVeNqA found 28 block between 51206 and 51249. seems legit, i need time to check carefully. will post again soon when a double check the chain

                  nothing so far between 50850 ans 51267 :)

                  coinotron at 51271 has: 1.3Gh/s
                  givemeFTC show at 51245: FTC/BTC: 0.0009 Net: 5698.41MH/s Pool: 585.02 MH/s (10.3%) Difficulty: 73.64 Workers: 597
                  and at 5179: FTC/BTC: 0.0009 Net: 5064.92MH/s Pool: 613.31 MH/s (12.1%) Difficulty: 73.64 Workers: 600
                  FCPool at 51279: Pool Hashrate: 487.24 MH/s Network Hashrate: 4.78 Gh/s Difficulty: 73.63547784 Pool Miners: 230 Pool Workers: 593

                  1 Reply Last reply Reply Quote 0
                  • ghostlander
                    ghostlander Regular Member last edited by

                    It seems these blocks were generated by a broken daemon. There is no way to remove them from the block chain or update to the correct value of 200. The question is why they have been accepted by the network as valid blocks. Such blocks with non-standard reward values must be rejected.

                    1 Reply Last reply Reply Quote 0
                    • G
                      groll Regular Member last edited by

                      [quote]if (vtx[0].GetValueOut() > GetBlockValue(pindex->nHeight, nFees))
                      return false;[/quote]

                      so you need to be not greater then reward + fee, so been lower is accepted.

                      1 Reply Last reply Reply Quote 0
                      • wrapper
                        wrapper Moderators last edited by

                        Great work.

                        1 Reply Last reply Reply Quote 0
                        • ghostlander
                          ghostlander Regular Member last edited by

                          GetBlockValue() returns new block reward (nSubsidy) + transaction fees (nFees).

                          [code=“main.cpp”]
                          int64 static GetBlockValue(int nHeight, int64 nFees)
                          {
                          int64 nSubsidy = 200 * COIN;

                          nSubsidy >>= (nHeight / 840000);

                          return nSubsidy + nFees;
                          }
                          [/code]

                          While nFees is calculated as difference between tx.GetValueIn() and tx.GetValueOut(), no check been made if actual nSubsidy in particular block submitted is correct. It only rejects blocks with value higher than calculated. Therefore,

                          [code=“main.cpp”]

                          • if (vtx[0].GetValueOut() > GetBlockValue(pindex->nHeight, nFees))
                            return false;
                          • if (vtx[0].GetValueOut() != GetBlockValue(pindex->nHeight, nFees))
                            return false;
                            [/code]

                          Value of the 1st transaction in block must be equal to correct nSubsidy + nFees collected from other transactions included in this block if any.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post