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

    [Dev] Nameview - DNS Naming System Built on Feathercoin's Blockchain

    Technical Development
    6
    15
    11276
    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.
    • lizhi
      lizhi last edited by wrapper

      Openname : Request for Bounty donations …

      Tip the Official FTC Bouny Jar : 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A

      Opennames is a service system to inbed DNS (Dynamic name service) for IP address in the Featherccoin Blockchain.

      The Feathercoin - Nameview - (Opennames DNS) experimental facility is now looking for some programming, review, testing and documentation work. Or volunteers to look at part of that work.

      Feathercoin Admin / Devs are looking to support a crypto currency software development project. Firstly to provide a difference between 2 implementations of the code.

      Any level can assist, beginner to advanced wishing look more into technical development. The scope can be altered to suit.

      The worked would be based in the FTC 0.9.6.x maintenance “Team”. This involves documentation, bug fixing, testing.

      Feathercoin (official) development : https://github.com/FeatherCoin/Feathercoin/tree/0.9.6.2.1

      Feathercoin Core wallet : https://github.com/cqtenq/0.9.3
      FTC 2 - https://github.com/feathercoin2/Feathercoin2

      ------------

      History of Opennames developments.

      The Opennames service is based on the system developed by Namecoin to imbeded DNS in the Blockchain.

      This is the development thread for any enhancements / help for the FTC Opennames service.

      The system was derived from a discussion in September 2010, a discussion was started in the Bitcointalk forum about a hypothetical system called BitDNS and generalizing bitcoin, based on a talk at IRC at 14 November 2010. Gavin Andresen and Satoshi Nakamoto joined the discussion in the Bitcointalk forum and supported the idea of BitDNS.

      https://en.wikipedia.org/wiki/Namecoin

      Namecoin’s flagship use case is the censorship-resistant top level domain .bit, which is functionally similar to .com or .net domains but is independent of ICANN, the main governing body for domain names.

      Each Namecoin record consists of a key and a value which can be up to 520 bytes in size. Each key is actually a path, with the namespace preceding the name of the record. The key d/example signifies a record stored in the DNS namespace d with the name example and corresponds to the record for the example.bit website. The content of d/example is expected to conform to the DNS namespace specification.

      The current fee for a record is 0.01 NMC and records expire after 36000 blocks (~200 days) unless updated or renewed. Namecoins used to purchase records are marked as used and destroyed, as giving the fee to miners would enable larger miners to register names at a significant discount.

      @Lizhi Announces Open Names of Feathercoin Blockchain - July 2015
      Feathercoin will bring your a decentralized identity and naming system .This is a useful application, So I was exploring and learning.

      The openname system will be plugins run on feathercoin. This is my instance. It run on our core wallet.

      http://name.ftc-c.com

      name.jpg

      1 Reply Last reply Reply Quote 1
      • Wellenreiter
        Wellenreiter Moderators last edited by

        Can you make it a module of the wallet?

        I think of the following mechanism:

        • At startup the client scans a defined directory for files containing modules
        • If a module file is found, it is loaded and the corresponding menu entries are added to the wallet menus
        • each module file has at least two sections and one optional section:
          • The menu entries to be added
          • The code to be executed
          • A description of the module/help text (optional)

        This way we can keep the client slim and users don’t need to worry about functuions they personally doen’t need and we can add functionality without releasing new versions of the client. Also it opens the door for 3rd party modules.

        Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
        Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

        1 Reply Last reply Reply Quote 1
        • MrWyrm
          MrWyrm administrators last edited by

          Exciting stuff! For anyone unsure what this could mean for you, imagine being able to pay or tip people without having to copy and paste public address in. Find a user in the directory and pay them.

          On top of this, it could be used as a login auth system for services, if we had forum integration, you could login here, your profile could follow you.

          LIZHI you never cease to amaze me with your hard work.b

          Like what I do: 6uuy6isbrW1SBF191Bzgui1gWxPdNKx2PB

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

            very interesting work…

            1 Reply Last reply Reply Quote 0
            • kris_davison
              kris_davison last edited by

              Wow that’s amazing and quick :)

              1 Reply Last reply Reply Quote 0
              • lizhi
                lizhi last edited by

                It need blockstore project , After I build ardroid wallet , I think blockstore run as feathercoin’s side-chain.

                1 Reply Last reply Reply Quote 0
                • lizhi
                  lizhi last edited by

                  I hope feathecoin’s blockchain can support Openname Protocol. I don’t like onename , it is website but not source code .

                  ftc_name.png

                  1 Reply Last reply Reply Quote 0
                  • lizhi
                    lizhi last edited by

                    CKey key;
                    fCompressed=false;
                    key.SetSecret(vchSecret, fCompressed);
                    std::vector uret=key.GetPubKeyU(fCompressed);
                    LogPrintf(“addressbookpage unCompressedPubKey =%s\n”, HexStr(uret).c_str());

                            CKeyID unkeyID=CKeyID(Hash160(uret)); 
                            LogPrintf("addressbookpage hash160,unCompressedPubKey=%s\n", HexStr(unkeyID).c_str());
                            GUIUtil::setClipboard(HexStr(unkeyID).c_str());
                    

                    Step one OK . Make FeathercoinPrivateKey(private_key).public_key()

                    make unCompressedPubKey ,130bytes, like 04edb297ba63c35998ec23cfca60666bb4d0d1c3e810b93d2d20c94e3a129774407b719ecf902de8a20c6d99ed0ad0d8c5af178640fdcb0c5dee26c41d39306998

                    make unCompressedPubKey Hash160, like 6f01b45dd6685d5ac1717baa46e4cda8287c160b

                    As an independent developer, You’ll see me strong.

                    1 Reply Last reply Reply Quote 1
                    • lizhi
                      lizhi last edited by

                      I finish base40.h , It encode strings as base40 .

                      /* Encode strings as base40.
                         Lizhi
                      */
                      
                      #ifndef FEATHERCOIN_BASE40_H
                      #define FEATHERCOIN_BASE40_H
                      
                      #include 
                      #include 
                      #include 
                      #include 
                      
                      
                      static const char* pszBase40 = "0123456789abcdefghijklmnopqrstuvwxyz-_.+";
                      static const char* pszBase16 = "0123456789abcdef";
                      
                      
                      //Turn a string into a non-negative integer.
                      uint64_t charset_to_int(const unsigned char* pbegin, const unsigned char* pend)
                      {
                      	uint64_t output = 0;
                      	while (pbegin != pend)
                      	{
                      		const char *ch = strchr(pszBase40, *pbegin);
                      		if (ch == NULL)
                                  return 404;
                      		int carry = ch - pszBase40; //indexof
                      		output = output * strlen(pszBase40) + carry;
                      		pbegin++;
                      	}
                      	return output;
                      }
                      
                      void i64tohex(uint64_t n,char *s)
                      {
                          char base[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
                          uint64_t a = n;
                          int i = 0;
                          while(a != 0)
                          {
                              s[i++] = base[a%16];
                              a/=16;
                          }
                      }
                      
                      //Turn a non-negative integer into a string.
                      std::string int_to_charset(uint64_t val)
                      {
                      	if (val < 0)	 return "ERROR";
                      	if (val == 0)	 return "0";
                      		 
                      	std::string output;
                      	char a[80] = {0};
                      	i64tohex(val,a);
                      	std::string tmp;
                      	tmp.assign(a);
                      	
                      	const char *s1 = tmp.c_str();
                      	char b[80] = {0};
                      	int p=0;
                      	for (int i=(strlen(s1)-1);i>=0;i--)
                      	{
                      			b[p]=a[i];
                      			p++;
                      	}
                      	
                      	output.assign(b);
                      	return output;
                      }
                      
                      std::string hexpad(std::string val)
                      {
                      	std::string output="0";
                      	if ((val.length()%2)==1)
                      	{
                      		output=output+val;
                      		return output;
                      	}
                      	else
                      	{
                      		return val;
                      	}
                      }
                      
                      std::string charset_to_hex(const std::vector& vch)
                      {
                      	uint64_t intermediate_integer=charset_to_int(&vch[0],&vch[0] + vch.size());
                      	
                      	std::string output;
                      	output=int_to_charset(intermediate_integer);
                      	output=hexpad(output);
                      	return output;
                      }
                      
                      #endif // FEATHERCOIN_BASE40_H
                      
                      1 Reply Last reply Reply Quote 1
                      • surfguy72
                        surfguy72 Regular Member last edited by

                        Wow super Cool

                        1 Reply Last reply Reply Quote 0
                        • lizhi
                          lizhi last edited by

                          structural data

                          {“preorders”:{“txid”:{“name_hash”: ,“sender”: },“txid”:{“name_hash”: ,“sender”: } },“registrations”: {}}

                          {"preorders":{"4b65070235228ae0d7d6531d44fcde43ecab0ab2eb245ff333c9c1d7e78d4d7a":{ "name_hash": "7eb64316433518cb8feea8044580ca41f5dd7cb4", "sender": "76a914e53ed686edaf7a1fb2f64687247f9084425dc38288ac" },"d99b2df01a65c786df15cbf535987da457e9e17734543e0e416b878347fb3638":{"name_hash": "4e493b79ea3501e1323dd77c2722694960406f1d", "sender": "76a914e53ed686edaf7a1fb2f64687247f9084425dc38288ac" }},"registrations": {}}
                          

                          It can work as a side chain.

                          1 Reply Last reply Reply Quote 1
                          • lizhi
                            lizhi last edited by

                            I finished openname in our blockchain , It is nameview, It will add a nameview.dat file in your data directory.

                            You can register a name in feathercoin’s blockchain with your a address.

                            nameview3.png

                            After your transaction is confirmed , nameview will all registered names.

                            nameview4.png

                            source code https://github.com/feathercoin2/Feathercoin2

                            wallet download http://www.ftc-c.com/pack3/feathercoin-qt.rar

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

                              The Feathercoin - Nameview - (Opennames DNS) experimental facility is now looking for some testing and documentation work.

                              Feathercoin Admin / Devs are looking to support a school student / or interested hobbies, crypto currency software development in a “Summer of Code” style project.

                              Any level can assist, beginner to advanced wishing look more into technical development. The scope can be altered to suit.

                              The worked would be based in the FTC 0.9.6.2 maintenance “Team”. This involves documentation, bug fixing, testing.

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

                                Openname : Request for Bounty donation / Student project assistance

                                Tip the Official FTC Bouny Jar : 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A

                                The Feathercoin - Nameview - (Opennames DNS) experimental facility is now looking for some testing and documentation work. There has been no response for 5 months so we are now asking for Bounty contributions to do that work.

                                Feathercoin Admin / Devs are looking to support a profesional developer to spec and complete opennames facility and document it’s operation for FTC version 0.9.6.3, such that it can be easily pulled into version 0.13.x of Feathercoin.

                                The worked would be based in the FTC 0.9.6.x maintenance “Team”. This involves documentation, bug fixing, testing.

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

                                  Feathercoin developments and testing : Request for Bounty donations / developer or software builder / assistance

                                  Tip the Official FTC Bouny Jar : 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A

                                  The Feathercoin - Nameview - (Opennames DNS) experimental facility requires a programming review.

                                  Issue : Work was not completed on the opennames bounty. The opennames code has not been pulled into release version fully from the development version or tested.

                                  Requirements : review the difference between working version of opennames and current version 0.9.6.2.1, find the status, compare commits, build and test source code, with full instruction.

                                  Feathercoin Admin / Devs are looking to support a profesional developer to spec and complete opennames facility and document it’s operation for FTC version 0.9.3, such that it can be pulled into / tested in the 0.9.6.x of Feathercoin.

                                  The worked would be based in the FTC 0.9.6.x maintenance “Team”. This involves documentation, bug fixing, testing.

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