Feathercoin daemon and wallet production version 0.17.0.2

Blockchain Sync Improvement


  • | Tip typ0

    When new users are starting out with their wallet, it takes some time for it to update the blockchain. Feathercoin was not too bad, but eventfully it will take some time. My question is, is it possible to improve upon the time it takes to sync the blockchain to the wallet? Or is this something totally reliant on internet connection speed?


  • Moderators | Tip Wellenreiter

    Somehow the wallet must get the information about all existing blocks.

    With ACP in place there could be a possibility to modify the download process, so that it loads the blocks following the last checkpoint first. That way that the latest information is received fast, and the blocks before that checkpoint can be loaded in the background.

    But I’m not familiar with the details of the protocol and the wallet code and I’m only guessing here.


  • Regular Member | Tip d2

    [quote name=“Wellenreiter” post=“32646” timestamp=“1382987285”]
    Somehow the wallet must get the information about all existing blocks.

    With ACP in place there could be a possibility to modify the download process, so that it loads the blocks following the last checkpoint first. That way that the latest information is received fast, and the blocks before that checkpoint can be loaded in the background.

    But I’m not familiar with the details of the protocol and the wallet code and I’m only guessing here.
    [/quote]

    The problem is that the balance of a wallet is determined by all the previous transactions in the ledger which is the block chain. Only retrieving the latest blocks would mean that you would only have the latest transactions that were made which do not include balances. The only way to know where the coins came from to make transactions is to have the records from all previous blocks as far back as the original block that mined the coins.


  • | Tip kris_davison

    I think I have mentioned this before but the feathercoinj Java Library for interacting with the blockchain only stores the block headers so is much more lightweight and by the sounds of it this project has been brought up to date recently by hank following the update of the feathercoin android wallet application.


  • Moderators | Tip wrapper

    Yes, we discussed this. Having the normal wallet have an option for downloading the block headers, first, would be a good way to go.

    The wallet could be set up to have minimal, intermediate or full blockchain download options.

    The “intermediate option” would download relevant blocks around transactions to the wallet, up to checkpoints. It could also download a random amount of other full blocks to improve security.


  • Moderators | Tip Wellenreiter

    minimal and intermediate also would mitigate the future problem, that the local file containing the blockchain becomes very large and eats disc space.

    If I’m right for bitcoin it’s already around 10 Gbyte


  • Moderators | Tip wrapper

    [quote] minimal and intermediate also would mitigate the future problem, that the local file containing the blockchain becomes very large and eats disc space.[/quote]

    Exactly, the block chain, its an obvious long term problem. We produce 20 times the coins, so might experience it sooner.

    I haven’t found that much on Bitcoin working to solve that problem, any heads up on 0.8.5 adding any relevant features?

    If we do something on this front, we will be looking ahead to solve future problems before they happen. That helps Feathercoin appear and be more secure.


  • | Tip lizhi

    LTC build a download blockchain Service, See [url=http://blockchain.litecoin.net/litecoin/]http://blockchain.litecoin.net/litecoin/[/url]

    We should also create the same network service on feathercoin.com .


  • Moderators | Tip Wellenreiter

    [quote name=“d2” post=“32823” timestamp=“1383133460”]

    The problem is that the balance of a wallet is determined by all the previous transactions in the ledger which is the block chain. Only retrieving the latest blocks would mean that you would only have the latest transactions that were made which do not include balances. The only way to know where the coins came from to make transactions is to have the records from all previous blocks as far back as the original block that mined the coins.
    [/quote]

    The Client could download the blockchain up to a given ACP/Block/Date, calculate it’s own balance, use this as a starting point for further downloads and delete the ‘old’ blocks. This would reduce the disc space needed and correct balance would be calculated.
    The feature could be implemented as an option in the wallet, so that everybody can decide to have a local copy of the full blockchain or just the last XX blocks.

    The drawback would be, that the origin of coins in a transaction can’t be verified by the client carrying only the last XX blocks as local copy. I’m not sure if this can be a risk, as long as some clients carry the full blockchain and can reject transactions with invalid coins.


  • Regular Member | Tip d2

    [quote name=“Wellenreiter” post=“33234” timestamp=“1383552885”]
    The drawback would be, that the origin of coins in a transaction can’t be verified by the client carrying only the last XX blocks as local copy. I’m not sure if this can be a risk, as long as some clients carry the full blockchain and can reject transactions with invalid coins.
    [/quote]

    The pools wouldn’t be using a client that couldn’t verify the origins and those are the clients that matter. ACP would prevent exploiter pools from being able to hold majority of the network forcing invalid transactions. Even if they were able to constantly maintain 51% of the network, the checkpoints from the trusted pools would make sure everyone was on the correct chain with the verified transactions.