Skip to content

cryptol0g1c/bitsign-federation

Repository files navigation

BSG
Bitsign Federation Network

What is Bitsign Federation?

Bitsign Federation blockchain is a special type of blockchain (PoA algorithm) that lets you use features of blockchain/smart contracts like notarization, timestamping, escrow/crowdsale contracts but with low to zero fee and costs. Also we've created an abstraction layer on top of our EVM based blockchain that can be used to integrate business models with blockchain and smart contract features using only RESTful APIs.

For more information please visit the Official Website.

Explorer

Bitsign Federation block explorer can be found here

Configuration

To connect to Bitsign Federation Blockchain you need to use genesis.json for settings and initial conditions.

File can be downloaded from here

{
  "name": "Bitsign",
  "engine": {
    "authorityRound": {
      "params": {
        "gasLimitBoundDivisor": "0x400",
        "stepDuration": "5",
        "blockReward": "0xDE0B6B3A7640000",
        "validators" : {
          "safeContract": "0x0000000000000000000000000000000000000005"
        }
      }
    }
  },
  "params": {
    "maximumExtraDataSize": "0x20",
    "minGasLimit": "0x1388",
    "networkID" : "0x2323"
  },
  "genesis": {
    "seal": {
      "authorityRound": {
        "step": "0x0",
        "signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
      }
    },
    "difficulty": "0x20000",
    "gasLimit": "0x5B8D80",
    "timestamp": 1512771499
  },
  "accounts": {
    "0000000000000000000000000000000000000001": { "balance": "1000000000000000000", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } },
    "0000000000000000000000000000000000000002": { "balance": "1000000000000000000", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } },
    "0000000000000000000000000000000000000003": { "balance": "1000000000000000000", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } },
    "0000000000000000000000000000000000000004": { "balance": "1000000000000000000", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } },
    "0x0000000000000000000000000000000000000005": { "balance": "1000000000000000000", "constructor" : "6060604052602060405190810160405280730a0f29a9b479d91f6d112b203c7d9db0cb4cdb8473ffffffffffffffffffffffffffffffffffffffff16815250600190600161004e92919061008f565b506001600260006101000a81548160ff021916908315150217905550341561007557600080fd5b5b60016000908054610088929190610119565b505b6101ae565b828054828255906000526020600020908101928215610108579160200282015b828111156101075782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906100af565b5b509050610115919061016b565b5090565b82805482825590600052602060002090810192821561015a5760005260206000209182015b8281111561015957825482559160010191906001019061013e565b5b509050610167919061016b565b5090565b6101ab91905b808211156101a757600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101610171565b5090565b90565b610743806101bd6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806340a141ff1461005f5780634d238c8e1461009857806375286211146100d1578063b7ab4db5146100e6575b600080fd5b341561006a57600080fd5b610096600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610151565b005b34156100a357600080fd5b6100cf600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610320565b005b34156100dc57600080fd5b6100e46103ac565b005b34156100f157600080fd5b6100f9610489565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561013d5780820151818401525b602081019050610121565b505050509050019250505060405180910390f35b600080600260009054906101000a900460ff16151561016f57600080fd5b600091505b600180549050821015610319578273ffffffffffffffffffffffffffffffffffffffff166001838154811015156101a757fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561030b578190505b60018080549050038110156102a857600180820181548110151561021457fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018281548110151561025057fe5b906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80806001019150506101f4565b6001808080549050038154811015156102bd57fe5b906000526020600020900160005b6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600180548091906001900361030191906105f1565b5061030a61051e565b5b5b8180600101925050610174565b5b5b505050565b600260009054906101000a900460ff16151561033b57600080fd5b6001805480600101828161034f919061061d565b916000526020600020900160005b83909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506103a761051e565b5b5b50565b600160009080546103be929190610649565b506001600260006101000a81548160ff0219169083151502179055507f8564cd629b15f47dc310d45bcbfc9bcf5420b0d51bf0659a16c67f91d276325360006040518080602001828103825283818154815260200191508054801561047857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161042e575b50509250505060405180910390a15b565b61049161069b565b600080548060200260200160405190810160405280929190818152602001828054801561051357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116104c9575b505050505090505b90565b6000600260006101000a81548160ff0219169083151502179055506001430340600019167f55252fa6eee4741b4e24a74a70e9c11fd2c2281df8d6ea13126ff845f7825c896001604051808060200182810382528381815481526020019150805480156105e057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610596575b50509250505060405180910390a25b565b8154818355818115116106185781836000526020600020918201910161061791906106af565b5b505050565b8154818355818115116106445781836000526020600020918201910161064391906106af565b5b505050565b82805482825590600052602060002090810192821561068a5760005260206000209182015b8281111561068957825482559160010191906001019061066e565b5b50905061069791906106d4565b5090565b602060405190810160405280600081525090565b6106d191905b808211156106cd5760008160009055506001016106b5565b5090565b90565b61071491905b8082111561071057600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016106da565b5090565b905600a165627a7a72305820becc3f37992c78e668efe1f88f680507b6c7d888a514cd2ceecc935d3c09155f0029"
   }
  }
}

Also public nodes need to be queried to sync Federation blockchain to update to its latest state. You can use:

Federation Nodes:

enode://a891225909f70a4ee3f40c1dac05da763fe0354d5f259922abf841db51706283d2957c09fc7266e5f4633583a34dbef3f38a769eb35551788740a06e387dfa2a@159.203.176.160:30303
enode://b21d8b85165319a86c822dadcd51fbaf1aca3fe7854df8644c03ac304e34205d31d44d0eac7dd6366a8f8a621eeb2198d9644090d59771148fb3ac92630d2dd6@198.211.100.127:30303
enode://399eb9b379410a66c80899cf03bec59bce930cd6f8a8440e6c8601c881f68d994f054f297e931304c090bacbfca29d45063d624e45c7deb74b4b76993c14658a@159.203.178.88:30303

Running Parity

Parity software can be downloaded here (version 1.11.11+ recommended).

Configuration file

For a quick run you can use the simple yet working config file to start Parity below: config.toml

Command line

For running Parity on Bitsign Federation an example command line can be:

$ parity --config config.toml

Running a Bitsign node using Docker

$ docker run --detach \
            --name bitsign-node \
            -e NODE_NAME=some-name \
            --restart=unless-stopped \
            cryptologic/bitsign-node:latest

The NODE_NAME environment variable is a reference name for the statistics explorer, you can choose whatever you want.

Using Docker Compose

Edit the .env file and set the environment variables TAG and NODE_NAME, then run docker-compose:

$ nano .env
$ docker-compose up -d