Skip to content

Instantly share code, notes, and snippets.

Mason Fischer masonforest

Block or report user

Report or block masonforest

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View doubler_coin.rs
use crate::error;
use ellipticoin::{export, get_memory, sender, set_memory};
use wasm_rpc::Value;
use wasm_rpc::error::Error;
enum Namespace {
Balances,
}
#[export]
@masonforest
masonforest / ellipticoin_supply_simple.py
Last active Apr 8, 2019
A simple tentative Ellipticoin Supply curve
View ellipticoin_supply_simple.py
import datetime
import time
# All monetary values are in Ellipticoin Base Units (one onethousandth of an Ellipticoin)
YEARS_PER_ERA = 2
NUMBER_OF_ERAS = 7
SECONDS_PER_BLOCK = 5
SECONDS_IN_A_YEAR = datetime.timedelta(days=365).total_seconds()
BLOCKS_PER_ERA = int(YEARS_PER_ERA * SECONDS_IN_A_YEAR)/ SECONDS_PER_BLOCK
@masonforest
masonforest / ellipticoin_supply-21-million.py
Last active Apr 6, 2019
Tentative Ellipticoin Supply Curve that works out to a supply of 21 million coins
View ellipticoin_supply-21-million.py
import math
import datetime, time
import time
BLOCKS_PER_SECOND = 5
# This was chosen because it's an exponent of 2
# And it works out to about a year (1.3 years) if blocks are produced every 5 seconds as planned.
BLOCKS_PER_ERA = 2**23
# This was chosen because it puts the final issuance sometime in 2031
# If Ellipticoin hasn't caught on by then assume we've failed :/
NUMBER_OF_ERAS = 8
@masonforest
masonforest / hashfactor.py
Last active Mar 29, 2019
Hashfactor is proof of work algorithm inspired by hashcash
View hashfactor.py
# Hashfactor is proof of work algorithm inspired by [hashcash](http://www.hashcash.org/).
# Hashfactor is simpler to implement than hashcash but the result is not a
# hash with leading zeros. This tradeoff is worth-while if you have access to
# a computer to validate proof of work values but you'd like implementation to
# be simpler.
from random import randint
import binascii
import hashlib
@masonforest
masonforest / gist:99e7b694e68dfab06b348f22e179e370
Created Feb 25, 2019
./wavelet --port 3000 --db.path testdb_1 --api.port 9000
View gist:99e7b694e68dfab06b348f22e179e370
2019-02-25T14:33:44Z |INFO| Database has been loaded. db_path: testdb_1
2019-02-25T14:33:44Z |INFO| Successfully seeded the genesis of this node. file: genesis.json num_accounts: 1
2019-02-25T14:33:44Z |INFO| Registered transaction processor service. module: cloud.wasm
2019-02-25T14:33:44Z |INFO| Registered transaction processor service. module: contract.wasm
2019-02-25T14:33:44Z |INFO| Registered transaction processor service. module: money.wasm
2019-02-25T14:33:44Z |INFO| Registered transaction processor service. module: stake.wasm
2019-02-25T14:33:44Z |INFO| Keypair loaded. private_key: 6d6fe0c2bc913c0e3e497a0328841cf4979f932e01d2030ad21e649fca8d47fe71e6c9b83a7ef02bae6764991eefe53360a0a09be53887b2d3900d02c00a3858 public_key: 71e6c9b83a7ef02bae6764991eefe53360a0a09be53887b2d3900d02c00a3858
2019-02-25T14:33:44Z |INFO| Listening for peers. address=tcp://127.0.0.1:3000
2019-02-25T14:33:44Z |INFO| Local HTTP API is being served. host: localhost port: 9000
Enter a message: 2019-02-25T14:33:56Z |INFO| Connected t
@masonforest
masonforest / smart_contract.js
Last active Apr 13, 2019
A Javascript class for interacting with smart contracts written for the [Perlin network](https://www.perlin.net/).
View smart_contract.js
const crypto = require('crypto');
const { StringDecoder } = require("string_decoder");
const fs = require("fs");
const util = require('util');
const writeFile = util.promisify(fs.writeFile);
const readFile = util.promisify(fs.readFile);
const fileExists = util.promisify(fs.exists);
const _ = require("lodash");
const TRANSACTION_ID = new Uint8Array(256);
const ALICE = new Uint8Array(256).fill(1);
View trace_ethereum_transaction.js
var fs = require('fs');
const createKeccakHash = require('keccak');
var jayson = require('jayson');
var transaction = "0x1066b9764832dc6dc710c3e131ee54c68c1b3f1e21de6b3dc8f97ee68ff3f190";
var client = jayson.client.http({
host: "149.248.8.23",
port: 8545,
});
function hash(value) {
View 0x1066b9-trace.json
This file has been truncated, but you can view the full file.
{
failed: false,
gas: 95244,
returnValue: "",
structLogs: [{
depth: 1,
gas: 174176,
gasCost: 3,
memory: [],
@masonforest
masonforest / run.js
Created Sep 11, 2018
Run transaction at block #177610 in ethereumjs-vm
View run.js
var VM = require('./lib');
const SecureTrie = require('merkle-patricia-tree/secure')
var Account = require('ethereumjs-account');
const StateManager = require('./lib/stateManager.js');
const utils = require('ethereumjs-util')
const rlp = utils.rlp
const ethUtil = require('ethereumjs-util')
@masonforest
masonforest / gist:4df0eb9eb40b436c7c0d06148897f260
Created Sep 3, 2018
Output of `cargo run --features "evm-debug"`
View gist:4df0eb9eb40b436c7c0d06148897f260
parity-ethereum master % cargo run --features "evm-debug"
Compiling parity-rocksdb-sys v0.5.2
Compiling evm v0.1.0 (file:///Users/masonf/src/parity-ethereum/ethcore/evm)
Compiling ethcore-network-devp2p v1.12.0 (file:///Users/masonf/src/parity-ethereum/util/network-devp2p)
Compiling parity-whisper v0.1.0 (file:///Users/masonf/src/parity-ethereum/whisper)
error[E0423]: expected value, found module `informant`
--> ethcore/evm/src/interpreter/mod.rs:277:16
|
277 | evm_debug!({ informant.before_instruction(reader.position, instruction, info, &self.gasometer.as_mut().expect(GASOMETER_PROOF).current_gas, &stack) });
| ^^^^^^^^^ help: try: `self.informant`
You can’t perform that action at this time.