Skip to content

Commit

Permalink
1.2.900
Browse files Browse the repository at this point in the history
  • Loading branch information
wheatnetwork committed Oct 12, 2021
1 parent 5c78da3 commit 31741f1
Show file tree
Hide file tree
Showing 102 changed files with 2,594 additions and 2,749 deletions.
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
rev: v4.0.1
hooks:
- id: check-yaml
- id: end-of-file-fixer
Expand All @@ -10,11 +10,11 @@ repos:
- id: check-ast
- id: debug-statements
- repo: https://github.com/psf/black
rev: 21.6b0
rev: 21.8b0
hooks:
- id: black
- repo: https://gitlab.com/pycqa/flake8
rev: 3.7.9
rev: 3.9.2
hooks:
- id: flake8
- repo: https://github.com/pre-commit/mirrors-mypy
Expand Down
1,608 changes: 0 additions & 1,608 deletions CHANGELOG.md

This file was deleted.

49 changes: 21 additions & 28 deletions azure-pipelines.yml
Expand Up @@ -9,7 +9,7 @@ trigger:
- "*"
tags:
include:
- "*"
- "*"

pool:
vmImage: "macOS-10.15"
Expand Down Expand Up @@ -44,24 +44,18 @@ steps:
deleteCert: true

- script: |
python -m venv venv
ln -s venv/bin/activate .
. ./activate
python -m pip install --upgrade pip
pip install wheel pep517 setuptools_scm
node -v
pip install -i https://pypi.chia.net/simple/ miniupnpc==2.2.2
cd build_scripts
python3 -m venv ../venv
. ../venv/bin/activate
pip install setuptools_scm
touch $(System.DefaultWorkingDirectory)/build_scripts/version.txt
python -m installer-version > $(System.DefaultWorkingDirectory)/build_scripts/version.txt
displayName: "Install dependencies"
python ./build_scripts/installer-version.py > $(System.DefaultWorkingDirectory)/build_scripts/version.txt
cat $(System.DefaultWorkingDirectory)/build_scripts/version.txt
deactivate
displayName: Create installer version number
- script: |
. ./activate
clang --version
pip wheel --use-pep517 --extra-index-url https://pypi.chia.net/simple/ --wheel-dir=wheels .
pip install --no-index --find-links=./wheels/ wheat-blockchain
displayName: "Build and install wheels"
sh install.sh
displayName: "Install dependencies"
- task: NodeTool@0
inputs:
Expand All @@ -75,28 +69,16 @@ steps:
APPLE_NOTARIZE_PASSWORD="$(APPLE_NOTARIZE_PASSWORD)"
export APPLE_NOTARIZE_PASSWORD
if [ "$(APPLE_NOTARIZE_PASSWORD)" ]; then NOTARIZE="true"; export NOTARIZE; fi
git submodule update --init --recursive
cd build_scripts || exit
sh build_macos.sh
displayName: "Build DMG with build_scripts/build_macos.sh"
- task: PublishPipelineArtifact@1
inputs:
targetPath: $(System.DefaultWorkingDirectory)/wheels
artifactName: MacOS-wheels
displayName: "Upload MacOS wheels"

- task: PublishPipelineArtifact@1
inputs:
targetPath: $(System.DefaultWorkingDirectory)/build_scripts/final_installer/
artifactName: MacOS-DMG
displayName: "Upload MacOS DMG"

- bash: |
ls $(System.DefaultWorkingDirectory)/build_scripts/
cat $(System.DefaultWorkingDirectory)/build_scripts/version.txt
displayName: "list files in dir"
- bash: |
ls $(System.DefaultWorkingDirectory)/build_scripts/final_installer/
cd $(System.DefaultWorkingDirectory)/build_scripts/
Expand All @@ -122,6 +104,17 @@ steps:
displayName: "Create torrent file"
condition: and(succeeded(), contains(variables['build.sourceBranch'], 'refs/tags/'))
- bash: |
export AWS_ACCESS_KEY_ID=$(AccessKey)
export AWS_SECRET_ACCESS_KEY=$(SecretKey)
export AWS_DEFAULT_REGION=us-west-2
cd $(System.DefaultWorkingDirectory)/build_scripts/
export WHEAT_VERSION="Wheat-"$(<version.txt)
aws s3 cp $(System.DefaultWorkingDirectory)/build_scripts/final_installer/$WHEAT_VERSION.dmg s3://download-wheat-network/beta/Wheat-intel_latest_beta.dmg
aws s3 cp $(System.DefaultWorkingDirectory)/build_scripts/final_installer/$WHEAT_VERSION.dmg.sha256 s3://download-wheat-network/beta/Wheat-intel_latest_beta.dmg.sha256
displayName: "Upload Beta Files"
condition: and(succeeded(), contains(variables['build.sourceBranch'], 'refs/heads/main'))
- bash: |
export AWS_ACCESS_KEY_ID=$(AccessKey)
export AWS_SECRET_ACCESS_KEY=$(SecretKey)
Expand Down
244 changes: 244 additions & 0 deletions benchmarks/coin_store.py
@@ -0,0 +1,244 @@
import asyncio
import random
from time import time
from pathlib import Path
from wheat.full_node.coin_store import CoinStore
from typing import List
import os
import sys

import aiosqlite
from wheat.util.db_wrapper import DBWrapper
from wheat.consensus.coinbase import create_farmer_coin, create_pool_coin
from wheat.consensus.default_constants import DEFAULT_CONSTANTS
from wheat.types.blockchain_format.sized_bytes import bytes32
from wheat.types.blockchain_format.coin import Coin
from wheat.util.ints import uint64


NUM_ITERS = 200


async def setup_db() -> DBWrapper:
db_filename = Path("coin-store-benchmark.db")
try:
os.unlink(db_filename)
except FileNotFoundError:
pass
connection = await aiosqlite.connect(db_filename)
await connection.execute("pragma journal_mode=wal")
await connection.execute("pragma synchronous=OFF")
return DBWrapper(connection)


def rand_hash() -> bytes32:
return random.randbytes(32)


def make_coin() -> Coin:
return Coin(rand_hash(), rand_hash(), uint64(1))


async def run_new_block_benchmark():

db_wrapper: DBWrapper = await setup_db()

try:
coin_store = await CoinStore.create(db_wrapper)
# farmer puzzle hash
ph = bytes32(b"a" * 32)

all_added: List[bytes32] = []

block_height = 1
timestamp = 1631794488

print("Building database ", end="")
for height in range(block_height, block_height + NUM_ITERS):
additions = []
removals = []

# add some new coins
for i in range(2000):
c = make_coin()
additions.append(c)
all_added.append(c.get_hash())

# farm rewards
farmer_coin = create_farmer_coin(height, ph, 250000000, DEFAULT_CONSTANTS.GENESIS_CHALLENGE)
pool_coin = create_pool_coin(height, ph, 1750000000, DEFAULT_CONSTANTS.GENESIS_CHALLENGE)
reward_coins = [pool_coin, farmer_coin]
all_added += [pool_coin.name(), farmer_coin.name()]

# remove some coins we've added previously
random.shuffle(all_added)
removals = all_added[:100]
all_added = all_added[100:]

await coin_store.new_block(
height,
timestamp,
set(reward_coins),
additions,
removals,
)
await db_wrapper.db.commit()

# 19 seconds per block
timestamp += 19

print(".", end="")
sys.stdout.flush()
block_height += NUM_ITERS

total_time = 0
total_add = 0
total_remove = 0
print("\nProfiling mostly additions ", end="")
for height in range(block_height, block_height + NUM_ITERS):
additions = []
removals = []

# add some new coins
for i in range(2000):
c = make_coin()
additions.append(c)
all_added.append(c.get_hash())
total_add += 2000

farmer_coin = create_farmer_coin(height, ph, 250000000, DEFAULT_CONSTANTS.GENESIS_CHALLENGE)
pool_coin = create_pool_coin(height, ph, 1750000000, DEFAULT_CONSTANTS.GENESIS_CHALLENGE)
reward_coins = [pool_coin, farmer_coin]
all_added += [pool_coin.name(), farmer_coin.name()]
total_add += 2

# remove some coins we've added previously
random.shuffle(all_added)
removals = all_added[:100]
all_added = all_added[100:]
total_remove += 100

start = time()
await coin_store.new_block(
height,
timestamp,
set(reward_coins),
additions,
removals,
)
await db_wrapper.db.commit()
stop = time()

# 19 seconds per block
timestamp += 19

total_time += stop - start
print(".", end="")
sys.stdout.flush()

block_height += NUM_ITERS

print(f"\nMOSTLY ADDITIONS, time: {total_time:0.4f}s additions: {total_add} removals: {total_remove}")

print("Profiling mostly removals ", end="")
total_add = 0
total_remove = 0
total_time = 0
for height in range(block_height, block_height + NUM_ITERS):
additions = []
removals = []

# add one new coins
c = make_coin()
additions.append(c)
all_added.append(c.get_hash())
total_add += 1

farmer_coin = create_farmer_coin(height, ph, 250000000, DEFAULT_CONSTANTS.GENESIS_CHALLENGE)
pool_coin = create_pool_coin(height, ph, 1750000000, DEFAULT_CONSTANTS.GENESIS_CHALLENGE)
reward_coins = [pool_coin, farmer_coin]
all_added += [pool_coin.name(), farmer_coin.name()]
total_add += 2

# remove some coins we've added previously
random.shuffle(all_added)
removals = all_added[:700]
all_added = all_added[700:]
total_remove += 700

start = time()
await coin_store.new_block(
height,
timestamp,
set(reward_coins),
additions,
removals,
)
await db_wrapper.db.commit()

stop = time()

# 19 seconds per block
timestamp += 19

total_time += stop - start
print(".", end="")
sys.stdout.flush()

block_height += NUM_ITERS

print(f"\nMOSTLY REMOVALS, time: {total_time:0.4f}s additions: {total_add} removals: {total_remove}")

print("Profiling full block transactions", end="")
total_add = 0
total_remove = 0
total_time = 0
for height in range(block_height, block_height + NUM_ITERS):
additions = []
removals = []

# add some new coins
for i in range(2000):
c = make_coin()
additions.append(c)
all_added.append(c.get_hash())
total_add += 2000

farmer_coin = create_farmer_coin(height, ph, 250000000, DEFAULT_CONSTANTS.GENESIS_CHALLENGE)
pool_coin = create_pool_coin(height, ph, 1750000000, DEFAULT_CONSTANTS.GENESIS_CHALLENGE)
reward_coins = [pool_coin, farmer_coin]
all_added += [pool_coin.name(), farmer_coin.name()]
total_add += 2

# remove some coins we've added previously
random.shuffle(all_added)
removals = all_added[:2000]
all_added = all_added[2000:]
total_remove += 2000

start = time()
await coin_store.new_block(
height,
timestamp,
set(reward_coins),
additions,
removals,
)
await db_wrapper.db.commit()
stop = time()

# 19 seconds per block
timestamp += 19

total_time += stop - start
print(".", end="")
sys.stdout.flush()

print(f"\nFULLBLOCKS, time: {total_time:0.4f}s additions: {total_add} removals: {total_remove}")

finally:
await db_wrapper.db.close()


if __name__ == "__main__":
asyncio.run(run_new_block_benchmark())
2 changes: 1 addition & 1 deletion build_scripts/build_linux_deb.sh
Expand Up @@ -60,7 +60,7 @@ cp package.json package.json.orig
jq --arg VER "$WHEAT_INSTALLER_VERSION" '.version=$VER' package.json > temp.json && mv temp.json package.json

electron-packager . wheat-blockchain --asar.unpack="**/daemon/**" --platform=linux \
--icon=src/assets/img/Wheat.icns --overwrite --app-bundle-id=net.wheat.blockchain \
--icon=src/assets/img/Wheat.icns --overwrite --app-bundle-id=network.wheat.blockchain \
--appVersion=$WHEAT_INSTALLER_VERSION
LAST_EXIT_CODE=$?

Expand Down
2 changes: 1 addition & 1 deletion build_scripts/build_linux_rpm.sh
Expand Up @@ -61,7 +61,7 @@ cp package.json package.json.orig
jq --arg VER "$WHEAT_INSTALLER_VERSION" '.version=$VER' package.json > temp.json && mv temp.json package.json

electron-packager . wheat-blockchain --asar.unpack="**/daemon/**" --platform=linux \
--icon=src/assets/img/Wheat.icns --overwrite --app-bundle-id=net.wheat.blockchain \
--icon=src/assets/img/Wheat.icns --overwrite --app-bundle-id=network.wheat.blockchain \
--appVersion=$WHEAT_INSTALLER_VERSION
LAST_EXIT_CODE=$?

Expand Down
9 changes: 9 additions & 0 deletions build_scripts/build_macos.sh
Expand Up @@ -44,10 +44,19 @@ if [ "$LAST_EXIT_CODE" -ne 0 ]; then
exit $LAST_EXIT_CODE
fi

# sets the version for wheat-blockchain in package.json
brew install jq
cp package.json package.json.orig
jq --arg VER "$WHEAT_INSTALLER_VERSION" '.version=$VER' package.json > temp.json && mv temp.json package.json

electron-packager . Wheat --asar.unpack="**/daemon/**" --platform=darwin \
--icon=src/assets/img/Wheat.icns --overwrite --app-bundle-id=network.wheat.blockchain \
--appVersion=$WHEAT_INSTALLER_VERSION
LAST_EXIT_CODE=$?

# reset the package.json to the original
mv package.json.orig package.json

if [ "$LAST_EXIT_CODE" -ne 0 ]; then
echo >&2 "electron-packager failed!"
exit $LAST_EXIT_CODE
Expand Down

0 comments on commit 31741f1

Please sign in to comment.