1. We'll first install and run Umbrel OS on a Raspberry Pi 4. Full instructions can be found here. After installation, we'll set it up on http://umbrel.local, and then SSH into the Pi:
(SSH password is the same as your Umbrel's dashboard password)
1. We'll first install and run Umbrel OS on a Raspberry Pi 4. Full instructions can be found here. After installation, we'll set it up on http://umbrel.local, and then SSH into the Pi:
(SSH password is the same as your Umbrel's dashboard password)
# brew install pass fzf | |
alias passwords='find ~/.password-store/**/*.gpg | sed -E "s|.*password-store\/(.*).gpg|\1|"' | |
alias pw='pass -c "$(passwords | fzf)"' |
{ | |
"info": { | |
"_postman_id": "9076792a-6d59-4278-a33a-bad8baa90a43", | |
"name": "Handshake", | |
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" | |
}, | |
"item": [ | |
{ | |
"name": "Node", | |
"item": [ |
docker run redsift/dnstrace -n 100 -c 10 --server 103.196.38.38 --recurse 0b | |
Benchmarking 103.196.38.38:53 via udp with 10 conncurrent requests | |
Total requests: 1000 of 1000 (100.0%) | |
Connection errors: 0 | |
Read/Write errors: 22 | |
DNS success codes: 978 | |
DNS response codes |
const fs = require('fs'); | |
const crypto = require('crypto'); | |
const decB64 = b64 => Buffer.from(b64, 'base64').toString('ascii'); | |
const encB64 = ascii => Buffer.from(ascii).toString('base64'); | |
const saveKeyToFile = (filename, key) => | |
fs.writeFileSync(filename, key.export({ type: 'pkcs8', format: 'pem' })); | |
const loadKeyFromFile = filename => loadRawKey(fs.readFileSync(filename)); | |
const loadRawKey = raw => crypto.createPrivateKey(raw); |
;ii;;;;i:;i;:;;::;;:,::,,:,,,,,,,,,,,,,.,,,..,,,.,,;t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8t:::,,.,,,.,,,.,,,,,.........,.,.......,..,,...,................. | |
iiiii;;;;;;::;;:::::,::,,,,,,,,,,,,,,,.,..,.,,,.,,tL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@f,. . . . . . .....................,..........,.... | |
ii;;:;;;;::i;;:::,,::,,:,,,,,.,,,,,.,,.,..,....,i0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L:.. | |
;;;;;;;:::i:;:;:::;::,:,,,,,,:,,..,.,,.,...,..,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G;. | |
;;ii;i:;:;;:::::::::,::,,:,,,,,.,,,.,,.....,,t@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;, .. | |
;;;;;;::;;;::;,;::,::,:,,,,.,,,,.,,.......,:0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8i:, | |
;;;;;;;::,::::::,::::,,,,,,:,:,,.,,,......,08@@@@@@@@@@@@8 |
This script will hash "all" possible Handshake names (plus some invalids) and log the "smaller" (based on its position on the Urkel Tree)
Currently, the first name on the Urkel Tree is swaffield
Hey folks, I'd like to share my view of the "login with HNS" feature (https://director.namebase.io/apps/p/login-with-handshake)
Overview:
auth=02b562858a301a8721923b89df9963d30101639ac690cce5f555529b778c3dbfc7
When you login on a website using your Google account, you trust Google, but not necessarily the website you're log in;
136,000 eth.ens.domains | |
136,000 gnunet.org | |
202,985 dnscrypt.info | |
202,985 marples.name | |
202,985 riseup.net | |
405,970 datprotocol.com | |
405,970 webtorrent.io | |
408,000 blockstack.com | |
608,955 mozilla.com | |
608,957 darksi.de |
const { WalletClient } = require('hs-client'); | |
const { Network } = require('hsd'); | |
const network = Network.get('main'); | |
// Important: Bob needs to be running | |
// This is the phrase you use to unlock Bob Wallet. | |
const passphrase = 'MY PASSPPHASE'; | |
// The list of domains you want to park; |