Giter Club home page Giter Club logo

bcnode's People

Contributors

akloboucnik avatar goblueping avatar mmpmm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bcnode's Issues

Refactor WAV rover

  • refactor controller

There is no need to run a full wav node, just use waves-api npm similarly to lsk rover.

gRPC

Features

  • Dynamically loaded gRPC services
  • Dynamically generated gRPC client

Config file

Features

  • Use user-specific dir
  • CLI integration
    • Generate
    • Delete
    • Show

Fee Market: NRG Block Rewards & Emblem Bonus (constants)

There will be 9.6 Billion NRG this will be distributed using two mechanisms A. Block Reward to miners and B. in the form of Boson Distributions which are distributed at random intervals every 4.5 months in Block time.

The Emblem bonus expands the default distance sum possible to inject blocks. This allows the miner to potentially take with less distance work. It is a logarithmic bonus.

Interesting idea: bitcoin/bitcoin#12271

Update dependencies - npm-check-updates

Output

$ ./node_modules/npm-check-updates/bin/ncu --packageFile package.json --packageFile package.json
Using /home/travis/build/blockcollider/bcnode/package.json
 async             ~2.5.0  →   ~2.6.0 
 axios            ^0.17.1  →  ^0.18.0 
 big.js            ^3.2.0  →   ^5.0.3 
 bitcoin-net       ^4.5.0  →   ^5.0.0 
 ethereum-common   ^0.1.0  →   ^0.2.1 
 leveldown         ^1.8.0  →   ^3.0.0 
 levelup           ^1.3.9  →   ^2.0.2 
 rocksdb           ^1.1.0  →   ^2.0.0 
 tx-builder        ^0.7.0  →  ^0.13.1 
 waves-api        ^0.21.5  →  ^0.22.0 
 flow-bin         ^0.65.0  →  ^0.66.0 
 jest              22.2.2  →   22.4.2 
 standard          10.0.3  →   11.0.0 
The following dependencies are satisfied by their declared version range, but the installed versions are behind. You can install the latest versions without modifying your package file by using npm update. If you want to update the dependencies in your package file anyway, run ncu -a.
 ethereumjs-devp2p        ^2.1.2  →   ^2.4.0 
 ethereumjs-util          ^5.1.2  →   ^5.1.5 
 mmap-object              ^1.3.5  →   ^1.3.6 
 node-forge               ^0.7.1  →   ^0.7.2 
 tar                      ^4.3.3  →   ^4.4.0 
 babel-eslint             ^8.2.1  →   ^8.2.2 
 babel-jest              ^22.2.2  →  ^22.4.1 
 eslint-plugin-flowtype  ^2.44.0  →  ^2.46.1 
Run ncu with -u to upgrade package.json

yarn outdated

Consider "yarn outdated" as replacement of "npm-check-updates"

Miner

Rewamp Miner

Required

  • Polish
  • Tests
  • cpuminer -> miner

Optional

  • Generic wrapper
  • GYP

FIX basics

Integrate FIX server

  • choose best nodejs FIX implementation
  • add basic structure to run FIX forked process
  • setup logging, run FIX broker, managed failures & restart
  • FIX sessions management

Releasing as a package

  • prepare package.json for publishing on npmjs
  • prebuild all binary packages for all supported platforms
  • ?tag & release automatically from master after travis build passes?
  • ?also publish a github release?

Fee Market: Transactions vs Blocks (constants)

Need to define the consensus rules around fees for transactions and how they are split between the block miner and the transaction miner.

{
block: 1,
txs: [{
"fpk": ?,
"d": ?
}]
}

How much to pay a miner who submitted a transaction vs the miner who found the block. The goal of transaction miners is actually to speed up the overall network while introducing a second metric by which to order the execution of transactions in a transaction pool. The transaction pool is traditionally bound by the active memory of the node.

  • Ex. Miner (MB) mines blocks and miner (MT) mines transactions. MB is bound by the maximum block transaction distance for each block (btd). Assuming Transaction Distance (td) then a valid block must have sum(td...td+i ) <= btd.

  • With compute & memory cost (cc) the MB realized transaction reward (TBR) is (fpk - cc - TR) * (btd)/actual number of transactions. The transaction reward is the optimization variable.

Unified rovers

Same structure and API

Components

  • Controller
  • Network
  • Rover

Rovers

  • BTC
  • ETH
  • LSK
  • NEO
  • WAWES

Tests

  • Integration tests
  • Unit tests

Elixir like configuration

Config structure mirrors module structure

Filesystem structure

$ tree src/rover -L 2
src/rover
├── btc
│   ├── controller.es6
│   ├── index.es6
│   ├── network.es6
│   └── rover.es6
├── eth
│   ├── controller.es6
│   ├── eth_rover.js
│   ├── network.es6
│   └── rover.es6
├── index.es6
├── lsk
│   ├── controller.es6
│   ├── index.es6
│   ├── network.es6
│   └── rover.es6
├── manager.es6
├── neo
├── utils.es6
└── wav

Config example

"rover": {
  "btc": {
    "controller" : {},
    "network": {}
  },
  "eth": {
    "controller": {}
    "network": {}
  }
}

Fee Market: Boson Distributions (constants)

There will be 9.6 Billion NRG this will be distributed using two mechanisms A. Block Reward to miners and B. in the form of Boson Distributions which are distributed at random intervals every 4.5 months in Block time.

Boson Distributions are a form of rent-busting and a encourage indirectly network participation, and pressure spammers/tumblers from creating empty transactions. Every 4.5 months a transaction ID is selected which most closely resembles the XOR combination of 100 blocks from the 4.5 month block and 100 blocks after it +/- one deviation. The public key which created the transaction ID that has the closest distance to the XOR combined hash receives or "finds" the Boson.

  • A fixed method of establishing the 4.5 month block needs to be defined. This can't be a fixed number because we can't predetermine when we will shift block delay times from 5.5 seconds to 3.5 etc.

  • The amount to be awarded should be based on the total amount of NRG transacted during that time. The algo here should create a disincentive for bad actors who just spam the network adding transactions to bump the reward.

  • The Boson reward is given to the public key.

Generated CHANGELOG.md

Generate CHANGELOG.md from git commits

  • [BUG]: Bug description
  • [FEATURE]: Feature description

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.