Skip to content

Instantly share code, notes, and snippets.

View justmoon's full-sized avatar

Stefan Thomas justmoon

View GitHub Profile
@justmoon
justmoon / gist:3440704
Created August 23, 2012 19:38
SJCL BN divInt
/** this /= (int) that */
sjcl.bn.prototype.divIntM = function (that) {
var i, limbs = this.limbs, ll = limbs.length, carry = 0, quotient;
if (this.sign() === -1) {
throw (new sjcl.exception.invalid("divIntM: dividend must be > 0"));
}
if ("number" !== typeof that ||
@justmoon
justmoon / test.html
Created August 19, 2012 19:50
SJCL secp256k1
<script src="https://raw.github.com/bitwiseshiftleft/sjcl/master/sjcl.js"></script>
<script src="https://raw.github.com/bitwiseshiftleft/sjcl/master/core/bn.js"></script>
<script src="https://raw.github.com/bitwiseshiftleft/sjcl/master/core/ecc.js"></script>
<script>
// Overwrite NIST-P256 with secp256k1
sjcl.ecc.curves.c256 = new sjcl.ecc.curve(
sjcl.bn.pseudoMersennePrime(256, [[0,-1],[4,-1],[6,-1],[7,-1],[8,-1],[9,-1],[32,-1]]),
"0x14551231950b75fc4402da1722fc9baee",
0,
7,
(((B))) BitcoinJS Daemon v0.2.1 (node-bitcoin-p2p)
Copyright (c) 2011 BitcoinJS Project
LICENSE This program is free software; you can redistribute it and/or modify
it under the terms of the MIT license.
2 Jan 03:13:47 - info: Loading configuration
2 Jan 03:13:47 - info: Initializing LevelDB (leveldb:///home/moon/.bitcoinjs/leveldb/)
2 Jan 03:13:47 - info: Listening for Bitcoin connections on port 8333
@justmoon
justmoon / main.c
Created January 1, 2012 02:45
OP_EVAL exploit miner
#include <stdio.h>
#include <openssl/ripemd.h>
#include <openssl/rand.h>
void print_hex(unsigned char *bytes, unsigned int len) {
int i;
for (i = 0; i < len; i++) {
printf("%02X", bytes[i]);
}
printf("\n");
@justmoon
justmoon / gist:1534875
Created December 29, 2011 16:35
BlockChain, main processing sequence, Step example
/**
* Connect a block and store it.
*
* This function takes over once add() has ascertained that the block passed
* intrinsic checks and there is no reorg currently in progress.
*/
var processBlock = this.processBlock = function processBlock(bw) {
// Shorthand
var block = bw.block;
@justmoon
justmoon / gist:1492987
Created December 18, 2011 10:32
NPM VPS crash
justmoon@atlas:~/opt$ rm -r node_modules/
justmoon@atlas:~/opt$ rm -r ../.npm/
justmoon@atlas:~/opt$ rm npm-debug.log
justmoon@atlas:~/opt$ npm install -v bitcoinjs
1.1.0-alpha-6
justmoon@atlas:~/opt$ npm install -verbose bitcoinjs
npm info it worked if it ends with ok
npm verb cli [ 'node',
npm verb cli '/usr/local/bin/npm',
npm verb cli 'install',
@justmoon
justmoon / results.txt
Created November 2, 2011 22:28
Node.js Buffer#copy performance
Node.js 0.4.12
--------------
Buffer (10 bytes):
Buffer#copy x 233,570 ops/sec ±0.96% (74 runs sampled)
Buffer[] x 1,152,607 ops/sec ±2.57% (72 runs sampled)
Fastest is Buffer[]
> [email protected] install /atlas/www/node-bitcoin-p2p/node_modules/bigint
> node-waf configure build
> [email protected] preinstall /atlas/www/node-bitcoin-p2p/node_modules/buffertools
> ./build-wrapper
Checking for program g++ or c++ : /usr/bin/g++
Setting srcdir to : /atlas/www/node-bitcoin-p2p/node_modules/buffertools
Setting blddir to : /atlas/www/node-bitcoin-p2p/node_modules/buffertools/build
@justmoon
justmoon / 0001-Enable-LiveObjectList.patch
Created August 23, 2011 04:24
Node.js - Enable LiveObjectList in d8 debugger (tested with v0.4.10)
From f1f6f7bf486a2d6ceebe51063676212a91cb3ed3 Mon Sep 17 00:00:00 2001
From: Stefan Thomas <[email protected]>
Date: Tue, 23 Aug 2011 05:22:44 +0100
Subject: [PATCH] Enable LiveObjectList.
---
deps/v8/src/liveobjectlist.cc | 138 +++++++++++++++++++++++++++++-----------
wscript | 2 +-
2 files changed, 101 insertions(+), 39 deletions(-)
@justmoon
justmoon / bintest.js
Created July 14, 2011 15:22
MongooseJS Binary Example
var crypto = require('crypto');
var mongoose = require('./');
mongoose.connect('mongodb://localhost/bintest');
var Schema = mongoose.Schema;
var HashSchema = new Schema({
id : String