'Failed to store profile'

I have registered an .id through the CLI and it shows up fine in the Blockstack Explorer and through the ‘blockstack names’ command. However, its zone file is not loading (shows “loading zone file” forever) and when I run ‘blockstack info’ it returns:

“confirmations”: 1004,
“errors”: [
“Failed to store profile”

tx_hash: “03f21e6c4d509c2aa407fe8d8c7625f9aac263ec11353ea710ae142d6f23f0db”

is there a way to fix this by myself? Thanks @jude

I took a look at that transaction, and it appears your name went through successfully. My node picked up your zone file, and it looks like this:

$ORIGIN newzealand.id
$TTL 3600
pubkey TXT "pubkey:data:03e45e4407a04ba87170fa79ec73f3d00573b7d7e016a8b73a4aa6556301ae4b9b"
_file URI 10 1 "file:///root/.blockstack/storage-disk/mutable/newzealand.id"
_https._tcp URI 10 1 "https://blockstack.s3.amazonaws.com/newzealand.id"
_http._tcp URI 10 1 "http://node.blockstack.org:6264/RPC2#newzealand.id"
_dht._udp URI 10 1 "dht+udp://7560f7e415e1a8543fbef889c4192a21838427d7"

It’s possible that the explorer cached the (negative) request for the zone file. It will expire in the cache in 12 hours. But rest assured, the above data is what the system (correctly) propagated.

The difficulties you’re having stem from the fact that the CLI is obsolete, and will be deprecated soon. Generally speaking, we recommend that you use the Blockstack Browser to register names for the time being. In particular, there are two difficulties:

  • Your name is owned by a multisig address. The existing tooling expects that your profile is signed by the same address that owns your name (the CLI does not expect this, but this is a deprecated feature). Also, the existing tooling expects that your profile is signed by a single key, which hashes to your owner address. What this means is that in order for your name to show up in the profile explorer, you’ll have to transfer your name to a single-key address.
  • Your zone file does not contain URLs to a Gaia hub or an HTTP(S) endpoint. This will need to be changed for your profile to show up.

To fix this, you’ll need to do the following:

  • Get the Blockstack browser
  • Generate a new ID-address. Let’s call it ID-ADDR in this example, where ADDR is a Bitcoin address.
  • Generate a zone file that looks like this:
$ORIGIN newzealand.id
$TTL 3600
_http._tcp URI 10 1 "https://gaia.blockstack.org/hub/ADDR/profile.json"

(replace ADDR is the address part of your ID-address).

  • Set this as your name’s zone file as follows:
$ cat /tmp/your_new_zonefile.txt
$ORIGIN newzealand.id
$TTL 3600
_http._tcp URI 10 1 "https://gaia.blockstack.org/hub/ADDR/profile.json"
$ blockstack update newzealand.id /tmp/your_new_zonefile.txt
  • Once it confirms, transfer your name to the browser with the following:
$ blockstack transfer newzealand.id ADDR
  • Once this confirms, your name should show up in the Browser, your profile should become editable in the UI, and the profile should show up in the Explorer.

Hope this helps!

1 Like

Hi @jude, I tested this approach and it worked!
Tnx.

One more question to @jude: You state “Once it confirms …”, but how many bitcoin confirmations do you have to wait for that?

Blockstack Core nodes will only accept a transaction with 6 confirmations or more. The CLI will wait for a transaction to receive 10 confirmations before removing it from its internal queue (which you can see with blockstack getinfo).

1 Like

Hi @jude, so I understand that the CLI will be deprecated soon. I think it works well, but Ok if something better is offered, fine.
I used it because it has a lot more options then the browser. I use it for registering id’s and then transferring them to other owners, to different Blockstack browsers. Particular Windows Blockstack browsers as they can’t order a name themselves (yet) and also some users that are not familiar with Bitcoin I can help out.

So how could I do all of that without the CLI? What is the alternative? Can I test the alternative now?

Hey @jefvanbockryck,

I think it works well, but Ok if something better is offered, fine.

I’m working on a new CLI built with blockstack.js. It will let you do the same things you can do with the current CLI, but it will come with a lot less baggage. The current CLI won’t be officially deprecated until the new one is ready.

It’s not in the Blockstack organization yet, but you can track early progress on it here: https://github.com/jcnelson/cli-blockstack

Particular Windows Blockstack browsers as they can’t order a name themselves (yet) and also some users that are not familiar with Bitcoin I can help out.

The reason Windows users were unable to register names is because up until recently, the Browser used the CLI internally to register names. The current CLI is written in Python and does not work on Windows. However, we have since rewritten the name registration logic to Javascript and moved it to blockstack.js, so the CLI is no longer necessary. Once the relevant pull requests get merged, name registration will occur entirely within the Browser and work on all platforms (relevant PR: https://github.com/blockstack/blockstack-browser/pull/1256).

I’m creating a new CLI around blockstack.js so we can preserve the CLI’s features without having to maintain two client implementations.

So how could I do all of that without the CLI? What is the alternative? Can I test the alternative now?

The CLI is not deprecated yet (but will be in the next release of Blockstack Core). It won’t be removed until all the necessary features are available in the new CLI.

Are you using the CLI only to register names for Windows users? Are you using the CLI’s internal registrar and RESTful API to do so, or are you using it manually? Asking so I can prioritize development tasks in the new CLI to ensure that you’ll be able to continue using a CLI :slight_smile:

1 Like

Well @jude this is a really nice progress, only having one client library in Javascript (blockstack.js), fully potent, having all functions. Then building the terminal interface (CLI) on top of that is great.

I understand now why the Windows release was lagging behind as well and that this will soon be solved.

Then about the wallet(s), or should I say, the two different wallets - on for CLI, on for browser - is history then as well, I guess? That would be fantastic as well.
If there’s only one wallet, then the profile editing can be done in the browser UI, which is a drag using CLI.

Then the only thing I need to be able to do is to transfer an .id I registered in the browser to another wallet/browser.
Maybe the blockstack.js and Restfull API functions are already there to do the transfer (I couldn’t find them)?
If that’s the case, I only need to know how - example will be fine - to use curl to execute the transfer from within the terminal, that is untill you’re ready with your blockstack.js-based CLI :).

In the past I used the CLI because a number of things I couldn’t do from the browser, but recently I use it only to transfer .id’s I registered to Windows users, yes.

Great questions @jefvanbockryck
Being able to transfer .id’s from browser to browser is something we would like to use as well.