Skip to content

Instantly share code, notes, and snippets.

View david415's full-sized avatar
💭
♥️Ⓐλ😼

David Stainton david415

💭
♥️Ⓐλ😼
View GitHub Profile
@david415
david415 / rwlock.pml
Created February 10, 2024 23:09
promela rwmutex with golang blocking semantics
int counter = 0;
typedef RWLock {
chan writeComplete = [0] of {bit};
chan allowWrite = [0] of {bit};
int readers;
bit writing;
int writeWaiters;
int readWaiters
}
@david415
david415 / dirauth.tla
Last active May 15, 2023 18:02
TLA+ spec for Katzenpost dirauth protocol
NOTE that in order to use this you'll have to tell your TLA+ model checker about the
values of DirAuthNodes and Relays, for example:
DirAuthNodes <- {"n1","n2","n3","n4","n5"}
Relays <- {"r1", "r2", "r3", "r4", "r5"}
------------------------------ MODULE dirauth ------------------------------
EXTENDS Naturals, Sequences, TLC, FiniteSets
Rebuttal of "[36C3] The ecosystem is moving"
============================================
abstract
--------
Moxie is wrong about a lot of things in this talk. Here I'll discuss
@david415
david415 / analytics.go
Created December 17, 2019 05:13
analytics.go
package main
import (
"bufio"
"flag"
"fmt"
"io"
"os"
"sort"
"strconv"
@david415
david415 / q1strings.go
Created December 17, 2019 01:03
Q1 Strings
package main
import (
"bytes"
"fmt"
)
func isAlmost(x, y []byte) bool {
skipped := false
[UpstreamProxy]
Type = "socks5"
Network = "tcp"
Address = "127.0.0.1:9050"
[Logging]
Disable = false
Level = "DEBUG"
File = "/home/user/catshadow_testnet/bob/catshadow.log"
@david415
david415 / gist:bb9918f199c009dabdd9e64ce889a63d
Created April 5, 2019 01:44
rust hyperlocal attempt at low level server unix socket listener.. fail not working
extern crate hyper;
extern crate hyperlocal;
use std::os::unix::net::UnixListener;
use hyper::{Response, rt::{Future, Stream}, service::service_fn};
use hyperlocal::server::{Http, Incoming};
fn main () {
if let Err(err) = std::fs::remove_file("hyperlocal_test_echo_server_2.sock") {
@david415
david415 / gist:e3966d18db55c193c418059bca71af5e
Created April 5, 2019 01:41
rust server listen on unix domain socket
use std::thread;
use std::os::unix::net::{UnixStream, UnixListener};
fn handle_client(stream: UnixStream) {
// ...
}
Congestion Control
[E2ECONGESTION] Floyd, S., Fall, K.,
"Promoting the Use of End-to-End Congestion Control in the Internet",
IEEE/ACM Transactions on Networking, May 1999,
<https://www.icir.org/floyd/papers/collapse.may99.pdf>.
[RFC896] Nagle, J., "Congestion Control in IP/TCP Internetworks",
@david415
david415 / detect_tor_network_partitions
Last active September 22, 2017 01:52
how to scan the tor network for partitions
how to scan the tor network for partitions
------------------------------------------
1. setup a machine running Tor and expose its control port as either a tcp port or unix domain socket
with no authentication
*edit* /etc/tor/torrc
blah blah easy rtfm