Skip to content

Instantly share code, notes, and snippets.

@devrandom
devrandom / bitcoin-desc.yml
Created January 30, 2011 23:50
Bitcoin build description file for gitian-builder
---
name: "bitcoin"
suites:
- "lucid"
architectures:
- "i386"
- "amd64"
packages:
- "libdb4.8++-dev"
- "libxxf86vm-dev"
@devrandom
devrandom / 00README.md
Last active September 27, 2024 01:02
Building bitcoin with gitian-builder

This is obsolete, since Bitcoin Core has moved to a more modern build system.

@devrandom
devrandom / gist:947034
Created April 28, 2011 18:56
ec2 build
#create a 64 bit m1.large instance using ami-08f40561
ssh -i key ubuntu@...
sudo apt-get update
sudo apt-get install python-vm-builder qemu-kvm apt-cacher git-core ruby
# turn it on
sudo vi /etc/default/apt-cacher
sudo service apt-cacher start
sudo chown ubuntu /mnt
class MultiSigUtils {
public static void signInput(Transaction tx, int inputIndex, byte[] inputScript, ECKey key) throws AddressFormatException {
TransactionInput input = tx.getInput(inputIndex);
Script existingScriptSig = input.getScriptSig();
int numSigs = Script.decodeFromOpN(inputScript[0]);
ScriptBuilder builder = new ScriptBuilder();
Script redeemScript = new Script(inputScript);
List<ScriptChunk> redeemChunks = redeemScript.getChunks();
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> first;
std::vector<int> second;
first.assign (7,100); // 7 ints with a value of 100
@devrandom
devrandom / HDUtil.java
Created December 5, 2014 18:13 — forked from anonymous/HDUtil.java
Parse Bitcoin extended keys
public class HDUtil {
private static final byte[] xprv = new byte[]{0x04, (byte) 0x88, (byte) 0xAD, (byte) 0xE4};
private static final byte[] xpub = new byte[]{0x04, (byte) 0x88, (byte) 0xB2, (byte) 0x1E};
private static final byte[] tprv = new byte[]{0x04, (byte) 0x35, (byte) 0x83, (byte) 0x94};
private static final byte[] tpub = new byte[]{0x04, (byte) 0x35, (byte) 0x87, (byte) 0xCF};
public static DeterministicKey parseDeterministicKey(String serialized) throws AddressFormatException {
byte[] data = Base58.decodeChecked(serialized);
if (data.length != 78) {
Verifying that +devrandom is my openname (Bitcoin username). https://onename.com/devrandom
@devrandom
devrandom / test_atomic.kt
Created February 24, 2015 22:58
One transactions, two wallets
import org.junit.Before
import org.junit.Test
import kotlin.test.fail
import org.bitcoinj.core.Transaction
import org.bitcoinj.params.MainNetParams
import org.bitcoinj.core.NetworkParameters
import org.bitcoinj.core.ECKey
import org.bitcoinj.core.Address
import org.bitcoinj.testing.FakeTxBuilder
import org.bitcoinj.core.Coin
@devrandom
devrandom / SimpleMultisig.sol
Created June 18, 2018 17:14
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.4.24+commit.e67f0147.js&optimize=false&gist=
pragma solidity ^0.4.22;
contract SimpleMultiSig {
uint public nonce; // (only) mutable state
uint public threshold; // immutable state
mapping (address => bool) isOwner; // immutable state
address[] public ownersArr; // immutable state
// Note that owners_ must be strictly increasing, in order to prevent duplicates
@devrandom
devrandom / SimpleMultisig.sol
Created June 20, 2018 16:41
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.4.24+commit.e67f0147.js&optimize=false&gist=
pragma solidity ^0.4.22;
contract SimpleMultiSig {
uint public nonce; // (only) mutable state
uint public threshold; // immutable state
mapping (address => bool) isOwner; // immutable state
address[] public ownersArr; // immutable state
// Note that owners_ must be strictly increasing, in order to prevent duplicates