- Create a public key (K1). Request a public key from the server (K2).
- Create and sign but do not broadcast a transaction (T1) that sets up a payment of (for example) 10 BTC to an output requiring both the server's public key and one of your own to be used. A good way to do this is use OP_CHECKMULTISIG. The value to be used is chosen as an efficiency tradeoff.
- Create a refund transaction (T2) that is connected to the output of T1 which sends all the money back to yourself. It has a time lock set for some time in the future, for instance a few hours. Don't sign it, and provide the unsigned transaction to the server. By convention, the output script is "2 K1 K2 2 CHECKMULTISIG"
- The server signs T2 using its public key K2 and returns the signature to the client. Note that it has not seen T1 at this point, just the hash (which is in the unsigned T2).
- The client verifies the servers signature is correct and aborts if not.
- The client signs T1 and passes the signature to the server, which now broadca
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Manually download each month's call history from t-mobile.com and toss them in | |
# a directory. Or do it automatically using computers, who cares. | |
# | |
# Install spark: https://github.com/holman/spark | |
cat * | grep 266-2278 | sort | cut -d, -f5 | spark | |
# ▂█▁▃▅ | |
echo "fuck comcastttttttttttttttttttttttttttttttttttttttttt" | |
# ⒻⓊⒸⓀ ⒸⓄⓂⒸⒶⓈⓉ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import httplib2 | |
import sys | |
import json | |
from urllib import urlencode | |
h = httplib2.Http(".cache") | |
print "Please hold while we retrive your IP address..." | |
r,ip = h.request("http://[fc72:6c3b:8c74:68a7:d8c3:b4e0:6cbd:9588]/ip/","GET") | |
url = "http://[fc5d:baa5:61fc:6ffd:9554:67f0:e290:7535]/node/details/" + ip + "/save" | |
print "Looks like your IP is " + ip |
(That's my attempt to understand what problem Impulse solves and how. I am not a designer/developer of this scheme.)
Regular Bitcoin transactions are not guaranteed until mined sufficiently deep in the blockchain. Unconfirmed transactions can be observed nearly instantly, but they cannot be trusted (could drop out because of insufficient fees, or double-spent).
Impulse Overview
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
While the standard 80 character limit for source code can be traced back to the | |
IBM punch card[1] it can still be seen as a good upper bound for how long lines | |
of text should be on modern high definition displays. | |
First thing we must acknowledge is that source code is not read in the | |
traditional sense. Instead developers scan the source using non-linear eye | |
movements[2] or stay fixated in a small area of code while working out the | |
logical details of code being written. The fixation on a single location, even | |
for more than a few seconds, leads to a loss of visual accuity. Which occurs | |
when the eyes do not perform frequent saccadic eye movements.[3] Further |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
OP_DEPTH 3 OP_EQUAL | |
OP_IF | |
OP_HASH160 <hash160(R)> OP_EQUALVERIFY | |
OP_0 2 <AlicePubkey1> <BobPubkey1> 2 OP_CHECKMULTISIG | |
OP_ELSE | |
OP_0 2 <AlicePubkey2> <BobPubkey2> 2 OP_CHECKMULTISIG | |
OP_END |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.screen-reader-only { | |
border: 0; | |
clip: rect(0 0 0 0); | |
height: 1px; | |
margin: -1px; | |
overflow: hidden; | |
padding: 0; | |
position: absolute; | |
width: 1px; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
shopt -s expand_aliases | |
rm -r ~/elementsdir1 | |
rm -r ~/elementsdir2 | |
rm -r ~/bitcoindir | |
mkdir ~/elementsdir1 | |
mkdir ~/elementsdir2 | |
mkdir ~/bitcoindir |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
import pprint | |
from .magic import Spell | |
class bcolors: | |
HEADER = '\033[95m' | |
OKBLUE = '\033[94m' | |
OKGREEN = '\033[92m' | |
WARNING = '\033[93m' | |
FAIL = '\033[91m' |
OlderNewer