Skip to content

Instantly share code, notes, and snippets.

@nakov
Created February 20, 2018 10:21
Show Gist options
  • Save nakov/c5ad7815766006b9869cad78c98eb6e9 to your computer and use it in GitHub Desktop.
Save nakov/c5ad7815766006b9869cad78c98eb6e9 to your computer and use it in GitHub Desktop.
Start RSK Node in Windows - Example
blockchain.config.name = "regtest"
peer {
discovery = {
# if peer discovery is off
# the peer window will show
# only what retrieved by active
# peer [true/false]
enabled = true
# List of the peers to start
# the search of the online peers
# values: [ip:port]
ip.list = [
]
# Interface to bind UDP
# Make sure you are using the correct bind ip. Wildcard value: 0.0.0.0
bind.ip = 0.0.0.0
}
# Boot node list
# Use to connect to specific nodes
active = [
#{
# ip = 11.22.33.44
# port = 50505
# nodeId = e437a4836b77ad9d9ffe73ee782ef2614e6d8370fcf62191a6e488276e23717147073a7ce0b444d485fff5a0c34c4577251a7a990cf80d8542e21b95aa8c5e6c
#}
]
# list of trusted peers the incoming connections is always accepted from. Even if the max amount of connections is reached
# This is used to create a filter of Trusted peers
trusted = [
# Sample entries:
# {nodeId = "e437a4836b77ad9d9ffe73ee782ef2614e6d8370fcf62191a6e488276e23717147073a7ce0b444d485fff5a0c34c4577251a7a990cf80d8542e21b95aa8c5e6c"},
# {ip = "11.22.33.44"},
# {ip = "11.22.33.*"},
# {
# nodeId = "e437a4836b77ad9d9ffe73ee782ef2614e6d8370fcf62191a6e488276e23717147073a7ce0b444d485fff5a0c34c4577251a7a990cf80d8542e21b95aa8c5e6c"
# ip = "11.22.33.44"
# }
]
# Peer for server to listen for incoming connections
# 5050 for mainnet, 30305 for regtest
listen.port = 30305
# connection timeout for trying to connect to a peer [seconds]
connection.timeout = 2
# the parameter specifies how much time we will wait for a message to come before closing the channel
channel.read.timeout = 30
# Private key of the peer
nodeId = 77a96a97e274113fd4519b01fa968b5706f3d2b5e70fa7a4b6c2fa09a1c6cddeca837419ba4874767cb533601f3f601976f871bc1287c35aef24e10d47254481
privateKey = 47e50ddc101094b1a078c52507fb65d5a30cf492a69d1520e2b2a7de40c6a3ad
# Network id
networkId = 34567
p2p {
# max frame size in bytes when framing is enabled
framing.maxSize = 32768
# forces peer to send Handshake message in format defined by EIP-8,
# see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-8.md
eip8 = true
}
# max number of active peers our node will maintain
# extra peers trying to connect us will be dropeed with TOO_MANY_PEERS message
# the incoming connection from the peer matching 'peer.trusted' entry is always accepted
maxActivePeers = 30
}
# the folder resources/genesis contains several versions of genesis configuration according to the network the peer will run on
genesis = rsk-dev.json
# the number of blocks should pass before pending transaction is removed
transaction.outdated.threshold = 10
# the number of seconds should pass before pending transaction is removed
# (suggested value: 10 blocks * 10 seconds by block = 100 seconds)
transaction.outdated.timeout = 650
database {
# place to save physical storage files
dir = ./chain-data
# every time the application starts the existing database will be destroyed and all the data will be downloaded from peers again
# having this set on true does NOT mean that the block chain will start from the last point
# [true/false]
reset = false
}
dump {
# for testing purposes all the state will be dumped in JSON form to [dump.dir] if [dump.full] = true
# possible values [true/false]
full = false
dir = dmp
# This defines the vmtrace dump to the console and the style
# -1 for no block trace
block = -1
# styles: [pretty/standard+] (default: standard+)
style = pretty
# clean the dump dir each start
clean.on.restart = true
}
# structured trace is the trace being collected in the form of objects and exposed to the user in json or any other convenient form
vm.structured {
trace = false
dir = vmtrace
compressed = true
initStorageLimit = 10000
}
# invoke vm program on message received, if the vm is not invoked the balance transfer occurs anyway [true/false]
play.vm = true
# hello phrase will be included in the hello message of the peer
hello.phrase = Dev
# Key value data source values: [leveldb]
keyvalue.datasource = leveldb
# the parameter specify when exactly to switch managing storage of the account on autonomous db
details.inmemory.storage.limit = 1
sync {
# block chain synchronization can be: [true/false]
enabled = true
# maximum blocks hashes to ask sending GET_BLOCK_HASHES msg we specify number of block we want to get, recomended value [1..1000]
# Default: unlimited
max.hashes.ask = 10000
# minimal peers count used in sync process sync may use more peers than this value but always trying to get at least this number from discovery
peer.count = 10
# The expected number of peers we would want to start finding a connection point.
expectedPeers = 5
# Timeout in minutes to start finding the connection point when we have at least one peer
timeoutWaitingPeers = 1
# Timeout in seconds to wait for syncing requests
timeoutWaitingRequest = 30
# Expiration time in minutes for peer status
expirationTimePeerStatus = 10
# Maximum amount of chunks included in a skeleton message
maxSkeletonChunks = 20
# Amount of blocks contained in a chunk,
# MUST BE 192 or a divisor of 192
chunkSize = 192
}
rpc {
enabled = true
port = 4444
# A value greater than zero sets the socket value in milliseconds. Node attempts to gently close all TCP/IP connections with proper half close semantics,
# so a linger timeout should not be required and thus the default is -1.
# linger.time = 0
cors = "*"
# Enabled RPC Modules. If the module is NOT in the list, and mark as "enabled", the rpc calls will be discard.
# It is possible to enable/disable a particular method in a module
# {
# name: "evm",
# version: "1.0",
# enabled: "true",
# methods: {
# enabled: [ "evm_snapshot", "evm_revert" ],
# disabled: [ "evm_reset", "evm_increaseTime" ]
# }
# }
modules = [
{
name: "eth",
version: "1.0",
enabled: "true",
},
{
name: "net",
version: "1.0",
enabled: "true",
},
{
name: "rpc",
version: "1.0",
enabled: "true",
},
{
name: "web3",
version: "1.0",
enabled: "true",
},
{
name: "evm",
version: "1.0",
enabled: "true"
},
{
name: "sco",
version: "1.0",
enabled: "true",
},
{
name: "personal",
version: "1.0",
enabled: "true"
}
]
}
# account loaded when the node start.
wallet {
enabled = true
accounts = [
{
"publicKey": "0477a96a97e274113fd4519b01fa968b5706f3d2b5e70fa7a4b6c2fa09a1c6cddeca837419ba4874767cb533601f3f601976f871bc1287c35aef24e10d47254481",
"privateKey": "47e50ddc101094b1a078c52507fb65d5a30cf492a69d1520e2b2a7de40c6a3ad"
}
]
}
wire {
protocol: "rsk"
}
# solc compiler path
#solc.path = <SOLC_PATH>
solc.path = "C:/Users/nakov/AppData/Roaming/npm/solcjs.cmd"
# not good reputation expiration time in seconds
scoring {
# punishment by node id
nodes {
# number of nodes to keep scoring
number: 100
# initial punishment duration (in minutes, default = 10 minutes)
duration: 12
# punishment duration increment (in percentage, default = 10)
increment: 10
# maximum punishment duration (in minutes, default = 0 minutes, no maximum)
maximum: 0
}
# punishment by address
addresses {
# initial punishment duration (in minutes, default = 10 minutes)
duration: 12
# punishment duration increment (in percentage, default = 10)
increment: 10
# maximum punishment duration (in minutes, default = 1 week)
maximum: 6000
}
}
miner {
server.enabled = true
client.enabled = true
minGasPrice = 0
# these are values used by MinerServer to set the notify flag on/off
gasUnitInDollars = 0.001
minFeesNotifyInDollars = 30
# this is a secret passphrase that is used to derive the address where the miner gets the reward.
# please note this is stored in a local wallet and not recommended for production.
coinbase.secret = "this is my coinbase secret :)"
}
java -Drsk.conf.file=rsk-node.conf -cp rskj-core-0.4.0-BAMBOO-all.jar co.rsk.Start
truffle console
web3.eth.blockNumber
...
module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 4444,
network_id: "*" // Match any network id
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment