You will use a TSIG key to authenticate yourself to your Knot server.
Using keymgr
shipped in knot-dnsutils
(for Debian releases) makes it simple.
keymgr -t <tsig_name> [<algorithm>] [<bits>]
;; SERVER: 108.61.10.10#53(108.61.10.10) | |
;; WHEN: Mon Dec 10 12:25:54 UTC 2018 | |
104.16.251.144 dl.discordapp.net | |
104.16.247.144 dl.discordapp.net | |
104.16.250.144 dl.discordapp.net | |
104.16.248.144 dl.discordapp.net | |
104.16.249.144 dl.discordapp.net | |
104.16.59.37 gateway.discord.gg | |
104.16.60.37 gateway.discord.gg |
<# | |
This PowerShell script locks your current session, then immediately turns off your monitor. | |
You don't have to wait for or alter your screen timeout, | |
or use a sleep button set to turning off monitor that doesn't exist on your computer. | |
#> | |
$LockWorkStation = Add-Type -Name "Win32LockWorkStation" -PassThru -MemberDefinition @" |
There're some Docker-ized configuration files to setup a weird proxy.
Since V2Ray doesn't support specifiy outbound address yet,
placing a Shadowsocks instance with -b
option behind the V2Ray server is less complex than policy routing in the kernel.
The whole proxy chain for this VMess over WebSocket:
Reverse Proxy (NGINX, etc.) -> V2Ray (WebSocket -> VMess) -> Shadowsocks
const path = require('path') | |
const { CleanWebpackPlugin: CleanPlugin } = require('clean-webpack-plugin') | |
const HtmlPlugin = require('html-webpack-plugin') | |
const MiniCssExtractPlugin = require('mini-css-extract-plugin') | |
module.exports = (env, argv) => { | |
const isProduction = argv.mode === 'production' | |
return { |
using System.Diagnostics; | |
var timeout = new CancellationTokenSource(TimeSpan.FromSeconds(1)); | |
var observer = new CancellationTokenSource(); | |
var linked = CancellationTokenSource.CreateLinkedTokenSource(timeout.Token, observer.Token); | |
await Task.Run(async () => { | |
try | |
{ |
#include <condition_variable> | |
#include <cstdio> | |
#include <mutex> | |
#include <queue> | |
#include <thread> | |
extern "C" | |
{ | |
#include <libavcodec/avcodec.h> | |
#include <libavformat/avformat.h> |
import { either, isLeft, isRight } from 'fp-ts/lib/Either' | |
import * as it from 'io-ts' | |
import { Int, Type, TypeOf } from 'io-ts' | |
import { PathReporter } from 'io-ts/lib/PathReporter' | |
// custom type: integer string | |
const IntegerString = new Type<number, string, unknown>( | |
'IntegerString', | |
Int.is, |
print('Knot Resolver ' .. package_version()) | |
modules = { | |
'bogus_log', | |
'hints', | |
'predict', | |
'prefill', | |
'workarounds < iterate', | |
} |
const start = 58600 | |
const end = 58700 | |
for (let i = start; i < end; i++) { | |
if (i % 100 === 0) { | |
console.log(`fetch block [${i}, ${i + 99}]`) | |
} | |
const blockHash = await api.rpc.chain.getBlockHash(i) | |
try { |