Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am evandiewald on github.
  • I am diewaldo (https://keybase.io/diewaldo) on keybase.
  • I have a public key ASCrX-RpRZRJrn593biCTD84kXj4BNCJfaNnJPOGSWnmxgo

To claim this, I am signing this object:

import requests
import datetime
import h3
import networkx as nx
import urllib
import numpy as np
import pandas as pd
import time
import random
import torch
import torch.nn.functional as F
from torch_geometric.nn import GCNConv, AGNNConv, SAGEConv, XConv
from torch_geometric.data import Data, DataLoader, Dataset
import pickle
from torch.nn import Linear, ReLU, Flatten
import random
import numpy as np
import matplotlib.pyplot as plt
from get_data import get_city_details
@evandiewald
evandiewald / helium_network_graphs.py
Created October 5, 2021 13:47
Generate the Helium network graph for a city.
from get_data import *
import math
import networkx as nx
import h3
import json
from torch_geometric.utils import from_networkx
from torch_geometric.data import Data
import pickle
@evandiewald
evandiewald / Dockerfile
Created August 12, 2021 20:00
Dockerfile for our enclave image
FROM python:3.7.11-slim-buster
# check on our entropy at initialization
RUN cat /proc/sys/kernel/random/entropy_avail
RUN apt-get update -y && apt-get install -y git curl gnupg build-essential libssl-dev libffi-dev python3-dev rng-tools openssh-client openssl haveged
# start the rngd daemon
RUN rngd -r /dev/urandom -o /dev/random
RUN sleep 20
RUN cat /proc/sys/kernel/random/entropy_avail
@evandiewald
evandiewald / vsock-parent.py
Last active August 12, 2021 19:15
VsockListener class from vsock-parent.py
class VsockListener:
"""Server"""
def __init__(self, conn_backlog=128):
self.conn_backlog = conn_backlog
self.files_received = [0, 0, 0] # --> [sym key, inference, pub key]
def bind(self, port):
"""Bind and listen for connections on the specified port"""
self.sock = socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM)
self.sock.bind((socket.VMADDR_CID_ANY, port))
@evandiewald
evandiewald / vsock-parent.py
Created August 12, 2021 19:09
VsockStream class from vsock-parent.py
class VsockStream:
"""Client"""
def __init__(self, conn_tmo=15):
self.conn_tmo = conn_tmo
self.parent_private_key = None
self.parent_public_key = None
self.enclave_private_key = None
def connect(self, endpoint):
@evandiewald
evandiewald / main.py
Created July 28, 2021 19:47
The /fruits endpoint from our FastAPI-based server
# /fruits endpoint from main.py
@app.post("/fruits")
async def fruits(request: Request):
body = await request.json()
access_key_id = urllib.parse.quote_plus(body['AccessKeyId'])
secret_key_id = urllib.parse.quote_plus(body['SecretAccessKey'])
session_token = urllib.parse.quote_plus(body['SessionToken'])
uri = f"mongodb+srv://{access_key_id}:{secret_key_id}@cluster0.bjrye.mongodb.net/myFirstDatabase" \
f"?authSource=%24external&authMechanism=MONGODB-AWS&retryWrites=true&w=majority" \
@evandiewald
evandiewald / index.html
Created July 28, 2021 19:36
Javascript from index.html
// javascript snippet from index.html
<script src="https://apis.google.com/js/platform.js" async defer></script>
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.953.0.min.js">
</script><meta name="google-signin-client_id" content="{GOOGLE_CLIENT_ID}">
<script>
var AWS = require("aws-sdk");
AWS.config.region = 'us-east-1';
@evandiewald
evandiewald / contracts...RTOToken.sol
Created July 22, 2021 17:45
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.6.12+commit.27d51765.js&optimize=false&runs=200&gist=
pragma solidity ^0.6.0; // compiled with 0.6.12
// import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.0.0/contracts/token/ERC20/ERC20Pausable.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.0.0/contracts/math/SafeMath.sol";
import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
contract RTOToken {
using SafeMath for uint256;