Help decentralize twister even more!

Yes, twister is already decentralized. However there are two areas where we may improve twister to make it more resilient:

  • DNS Seeders When twisterd is executed for the first time, it must locate some initial nodes to join the peer-to-peer network. twister, like Bitcoin, does that by trying a couple of special DNS servers (seeders) which provide an updated list of known peers. Currently twisterd is configured to try 4 different DNS Seeders but 3 of them depend on twister.net.co domain by Godaddy’s infrastructure. Some countries are known to have attacked this domain in order to prevent twister’s initial bootstrapping.

    How one may help? If you have a 24×7 linux machine and you are able to add an special NS record to your domain, please consider running twister-seeder. Then let me know (@mfreitas) and I will add your domain to the code base.

  • Soft checkpoints This is a feature that got added in January/2014 to protect twister blockchain from a series of attacks. The mechanism is described here: Soft checkpoints. In short, it is a consensus-based mechanism which adds further security to the well-known blockchain to prevent severe reversal attacks. The list of nodes/users allowed to “vote” for the blockchain checkpoints is stored in twister code.

    How one may help? This is an easier one as you don’t need to be able to change DNS records or anything, only a 24×7 twister box with an registered username is needed. Currently most of the boxes which are allowed to vote are administered by me, but nobody wants to depend on such low Bus Factor. I must know the voters are real people, but for everybody else who reads the code it is just an anonymous username. I don’t even recommend using the same username used for normal twister posts, you should reserve it just for checkpoint voting purposes. The twisterd takes care of everything, just let the username configured on that instance and let me know (@mfreitas).

  • If you prefer to contact me by email its also mfreitas, but on gmail.com domain.

    Posted in Uncategorized
    12 comments on “Help decentralize twister even more!
    1. tasty says:

      1) can standart Twister daemon do DNS Seeder things?
      2) is it necessary to not post from that username or it just recommendation?

      • mfreitas says:

        1) No, DNS Seeder is a separate and actually much smaller, simpler, lower footprint program than twisterd. It is available from the repository https://github.com/miguelfreitas/twister-seeder

        2) It is just a recommendation. In theory we don’t want voters to “collude”, so best would be if they don’t even know each other, or are non-reachable.

        • tasty says:

          1) I realise it smaller, simpler, lower footprint etc, but I ask if it does something that twisterd does not. sorry for bothering you, I just don’t want to run another yet daemon with same functionality.

          • mfreitas says:

            1) It does:
            - it is a crawler of all the known peers,
            - it keeps track of the uptime/availability of each peer
            - it ranks peers from the most available to the least
            - it serves DNS requests (reporting the list of the most available known peers)

            • tasty says:

              ok, got it. what about NS record?

            • mfreitas says:

              Ok, about the NS record. Ideally one would follow the instructions from

              https://github.com/miguelfreitas/twister-seeder/blob/master/README

              and add the NS record to the DNS server they administer. This is the best solution as we get completely independent of twister.net.co and Godaddy. We add redundancy by using another provider.

              If one doesn’t own a domain or can’t administer the existing DNS server for this domain, I may set another entry on twister.net.co domain. We get benefit of an extra seeder server but still relying on Godaddy… Not the best solution, but doable.

            • tasty says:

              there’s one thing that I don’t understand clearly: I should create A record first — e.g.’twisted.tasty.sexy A 69.24.67.14′ — and then NS one — e.g. ‘cruller.tasty.sexy NS twisted.tasty.sexy’, right? and what is the point of NS record in this case, why it is necessary?

            • mfreitas says:

              Actually it is the NS record that is important. I’m not specialist but my understanding is that you are delegating a subdomain to another server (the one running twister-seeder).

              The A record would just resolve directly to another IP. What we want is to redirect the client to request the answer from that IP. Type ‘host seed.twister.net.co’ to see what i mean.

            • tasty says:

              oh, indeed. I just didn’t have it right way. and it’s a bit misguiding about that NS cannot be IP adress directly.

        • tasty says:

          could you help me to run seeder as daemon on Ubuntu? https://github.com/miguelfreitas/twister-seeder/issues/1

    2. All my 24×7 Unix machines are already running a DNS server. Any way to make it useful for Twister, without using twister-seeder, which requires exclusive access to port 53?

      • mfreitas says:

        I have an offer of a server running twister-seeder. How about that: you take care of the NS records and the other guy takes care of the daemon?

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>