Subdomain creation issue

#1

Hi there,
I am trying to create subdomain so I set a node using blockstack-subdomain-registrar start abc.xyz then I tried to initiate request to this node using curl -X POST -H 'Content-Type: application/json' --data '{"zonefile": "$ORIGIN farouk\n$TTL 3600\n_file URI 10 1 \"file:///tmp/farouk.profile.json\"\n", "name": "farouk", "owner_address": "mhetNHR6JDGnHhxoQw8xJdxps9sNUeBH7g"}' http://localhost:3000/register/ but I got an error reply {"status":false,"message":"Failed to validate your registration request."}. Appreciate if anyone can support .

#2

Hey @minafarouk,

Is there anything in the subdomain registrar log? The error path that leads to that message would have logged something – either to stderr, or to a file if you redirected it.

#3

Looking at this a bit more, I see that you’re doing this in on the public testnet. I don’t think this is currently supported in the subdomain registrar. I’ll make a branch that adds support for it and post the URL here when it’s ready.

#4

Okay, I have a pull request open on the subdomain registrar that will allow you to run it on the testnet. It’s here: https://github.com/blockstack/subdomain-registrar/pull/24

Config file I used when testing:

$ cat /tmp/subdomain-registrar.json 
{
  "winstonConsoleTransport": {
      "level": "debug",
      "handleExceptions": false,
      "timestamp": true,
      "stringify": true,
      "colorize": true,
      "json": false
  },
  "domainName": "abcdefghij.id2",
  "ownerKey": "b3ba51aa84c73d2941a944d38f221cf8cb8c0b3958194e4db850458bc9b4b9c901",
  "paymentKey": "8104d106e4f8b73c6cba0feeb681eb4f4e0682f82652804dbe331502e816d4e701",
  "batchDelayPeriod": 15,
  "checkTransactionPeriod": 5,
  "zonefileSize": 40960,
  "dbLocation": "/tmp/subdomain_registrar.db",
  "adminPassword": "foo",
  "domainUri": "http://localhost:4567",
  "resolverUri": false,
  "port": 4567,
  "ipLimit": 0,
  "apiKeys": [],
  "proofsRequired": 0,
  "disableRegistrationsWithoutKey": false,
  "nameMinLength": 1
}

Usage:

$ BSK_TESTNET=1 BSK_SUBDOMAIN_CONFIG=/tmp/subdomain-registrar.json npm run start
$ curl -X POST -H 'Content-Type: application/json' --data '{"zonefile": "$ORIGIN farouk\n$TTL 3600\n_file URI 10 1 \"file:///tmp/farouk.profile.json\"\n", "name": "farouk", "owner_address": "mhetNHR6JDGnHhxoQw8xJdxps9sNUeBH7g"}' http://localhost:4567/register/
{"status":true,"message":"Your subdomain registration was received, and will be included in the blockchain soon."}
$
$ curl http://localhost:4567/issue_batch -X POST -H 'Authorization: bearer foo'
{"status":true,"message":"Starting batch."}
$
$ curl http://localhost:4567/check_zonefiles -X POST -H 'Authorization: bearer foo'
{"status":true,"message":"Checking zonefiles."}
$
$ $ blockstack-cli -t whois farouk.abcdefghij.id2
{
  "address": "mhetNHR6JDGnHhxoQw8xJdxps9sNUeBH7g",
  "blockchain": "bitcoin",
  "did": "did:stack:v0:t94Y82Bhf6goNeCBoeU44eKQwDzTqnJSfQ-0",
  "last_txid": "dc8e61fa1c14e2ae046c85466fb5c27874ce0f0f966f56905f03342681695452",
  "status": "registered_subdomain",
  "zonefile": "$ORIGIN farouk\n$TTL 3600\n_file URI 10 1 \"file:///tmp/farouk.profile.json\"\n",
  "zonefile_hash": "93d258aac59ab048ecd5f3c7ac9fd05413c533e5"
}
#5

I am tried but still got an error{"status":false,"message":"Failed to validate your registration request."} and you can find below my configurations and steps that I followed:
BSK_TESTNET=1 BSK_SUBDOMAIN_CONFIG=/root/subdomain-registrar2/subdomain-registrar/config.json npm run start
and config .json is
{
“winstonConsoleTransport”: {
“level”: “debug”,
“handleExceptions”: false,
“timestamp”: true,
“stringify”: true,
“colorize”: true,
“json”: false
},
“domainName”: “mina.dmaildmaildmail”,
“ownerKey”: “1cdcc5f5162077206e93e18a672e2d40de67599d6a7d85bc2e2288e09500cffc01”,
“paymentKey”: “8ad205d9c9752b776cd9803bc9bb430dabadd8d21c45b3cea482bd0e4875f27601”,
“batchDelayPeriod”: 15,
“checkTransactionPeriod”: 5,
“zonefileSize”: 40960,
“dbLocation”: “/tmp/subdomain_registrar.db”,
“adminPassword”: “ADMIN-PASSWORD”,
“domainUri”: “http://localhost:4567”,
“resolverUri”: false,
“port”: 4567,
“ipLimit”: 0,
“apiKeys”: [],
“proofsRequired”: 0,
“disableRegistrationsWithoutKey”: false,
“nameMinLength”: 1
}

I am just running curl -X POST 'http://localhost:4567/register/' and on the node I got the below
2019-07-29T15:36:52.272Z - debug: owner: undefined failed validation
2019-07-29T15:36:52.273Z - warn: Discarding operation for undefined because it failed validation.
2019-07-29T15:36:52.273Z - error: message=Requested subdomain operation is invalid., stack=Error: Requested subdomain operation is invalid.

#6

Did you install the branch I linked?

#7

If you don’t post a well-formed JSON body (per my example), then of course the request will fail – the registrar has no data on what name to register.