Official Blockstack Subdomain Registrar Rate Limiting

I have experienced new name registration rate limiting and I know many other developers have as well. The confusing thing I’ve noticed now and had confirmed by someone else is that the rate limiting does not appear to be tied to ip address.

In looking at the subdomain registrar code base, there is mention of ip addresses in the config file, but I’ve seen new names blocked for me and others even when trying to register them from alternate ip addresses (through vpn for example). Yet interestingly, the name registration works if done directly through the hosted Blockstack browser.

So, I’m just looking for clarity on what triggers the 409 response for registration of Blockstack sponsored names.

1 Like

Same issues here! I tried a bunch of different browsers and I keep getting a 409:

Timestamp for log troubleshooting Tue, 03 Sep 2019 21:35:55 GMT

Request

curl 'https://registrar.blockstack.org/register' \
-XPOST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Origin: https://browser.blockstack.org' \
-H 'Authorization: bearer Pret{{*****}}API' \
-H 'Referer: https://browser.blockstack.org/profiles/i/add-username/0/select/good_45633.id.blockstack' \
-H 'Content-Length: 248' \
-H 'Host: registrar.blockstack.org' \
-H 'Accept-Language: en-us' \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15' \
-H 'Accept-Encoding: br, gzip, deflate' \
-H 'Connection: keep-alive' \
--data-binary '{"name":"good_45633","owner_address":"18Tv7WGfJkk2u7uZngCHgHWhzWhESViaap","zonefile":"$ORIGIN good_45633.id.blockstack\n$TTL 3600\n_http._tcp\tIN\tURI\t10\t1\t\"https://gaia.blockstack.org/hub/18Tv7WGfJkk2u7uZngCHgHWhzWhESViaap/profile.json\"\n\n"}'

Response

Summary
URL: https://registrar.blockstack.org/register
Status: 409
Source: Network
Address: 104.20.177.131:443

Request
:method: POST
:scheme: https
:authority: registrar.blockstack.org
:path: /register
Accept: application/json
Content-Type: application/json
Origin: https://browser.blockstack.org
Authorization: bearer Pret{{*****}}API
Referer: https://browser.blockstack.org/profiles/i/add-username/0/select/good_45633.id.blockstack
Content-Length: 248
Host: registrar.blockstack.org
Accept-Language: en-us
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15
Accept-Encoding: br, gzip, deflate
Connection: keep-alive

Response
:status: 409
Content-Type: application/json
Set-Cookie: __cfduid=d6c2757471d7805P{{.....}}546555; expires=Wed, 02-Sep-20 21:35:55 GMT; path=/; domain=.blockstack.org; HttpOnly
Date: Tue, 03 Sep 2019 21:35:55 GMT
Access-Control-Allow-Origin: *
cf-ray: 510adb341ff0e1ce-ORD
x-powered-by: Express
Server: cloudflare
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"

Request Data
MIME Type: application/json
Request Data: {"name":"good_45633","owner_address":"18Tv7WGfJkk2u7uZngCHgHWhzWhESViaap","zonefile":"$ORIGIN good_45633.id.blockstack\n$TTL 3600\n_http._tcp\tIN\tURI\t10\t1\t\"https://gaia.blockstack.org/hub/18Tv7WGfJkk2u7uZngCHgHWhzWhESViaap/profile.json\"\n\n"}

The subdomain registrar is configured to limit registrations by IP and minimum name lengths. In the case of good_45633 it seems like the IP has registered many names already:

{"level":"warn","message":"good_45633 failed spam-check: IP address \"...\" already registered .. subdomains.","timestamp":"2019-09-03T21:33:35.632Z"}

Thanks @aaron. How many name registrations per day does an IP address get?

It’s not a per day limit — it’s cumulative. Once you’ve registered 20 names with an IP, you can’t register more. This is only on the .id.blockstack registrar, if you run your own, you can turn this limit off.

Bingo! Thanks for the explanation.