EOSIO doesn't have mining since it's not a proof-of-work system. It has block producers instead. Running a block producer on the main chain isn't a turn-on-and-forget type job, or a use-a-spare-machine type job. It's more like running a mini data center, with multiple high-end machines performing dedicated functions backed by redundant network connections. ...
for a normal user to run a full node on his PC?
If we define a "normal user" as Average Joe, who would like to just transfer some tokens or even deploy a smart contract, then there are not many reason why such a user would want to run a witness node.
But there are some:
If you are a developer/service provider (like exchange, block explorer) and you need ...
In the current specification, each of the 21 Block Producers will produce 6 seconds worth of blocks (i.e. 12 blocks) before handing off to the next producer in the production order.
Irreversibility is not determined by number of blocks, but by the number of producers who build on blocks. The protocol will tell you when a block becomes irreversible.
Block producers will be rewarded with EOS tokens.
A blockchain using EOS.IO software also awards block producers tokens every time they produce a block.
A blockchain that adopts the EOS.IO software will award new tokens to a block producer every time a block is produced. In these circumstances, the ...
Blocks always need to be produced due to there always being the potential for an action to be sent to the chain. If blocks are not produced, that action would then have additional latency added to it for the time it would take the chain to start and produce a block for one action. Also, if the chain is not flowing, there would not be a mechanism for ...
1) what is a stake?
Staking is the process of locking your tokens for a fixed period of time. On mainnet, at the moment, this period is at least three days.
2) after making a stake, what cpu and ram gets used? it's said that after staking , you are using block producer's cpu and ram's resources. how am i using their resources at all?
When you stake, you ...
Please feel free to edit this question for any fix or enhancement.
Your contribution is valuable especially that EOS and its resources
are frequently updated and this answer will need to be updated
The front-end can be configured as a set of non-producing nodes to serve as a cluster. Those nodes should be the ones ...
Aside from monetary incentives, the primary incentives for running your own node would be speed of access to the information in the block, and the ability to run custom plugins that are needed to power your application.
Since any node that runs will replicate all of the blocks as they are produced, accessing a local node will allow your application to query ...
RAM is there for speed, if you start swapping, performances degrade instantly.. you won't be a very good producer if you're too slow.. On a saturated network, your blocks will always be smaller than the other producers.. I wouldn't want to be in that position :)
The current expectation is that a "good enough" Block Producer will host 10 servers and provide 4 public endpoints, and earn something more than 100 new EOS tokens per day, depending on whether they are Active or Standby, and how many votes they receive.
A pretty good FAQ is here: https://medium.com/@bensig/eos-block-producer-faq-8ba0299c2896
To get the producer list, including vote totals, in json form: cleos system listproducers -j
After you retrieve a producer's url from the list, fetch bp.json from that to get more information. e.g. https://some-producer.io/bp.json. The schema for bp.json lives here.
Some of the information you want, such as server type, isn't available on-chain or in bp....
Firstly, there are 21 active block producers, not validators. Everyone can be a validator, and anyone can be a candidate or inactive block producer.
If the question is why only 21 active BPs, it's a number that Dan Larimer arrived to after some experimentation in his previous projects (BitShares, Graphene, and Steem.) For instance, one of Dan Larimer's ...
EOS Bandwidth in most cases refers to operations which writes to blockchain. So if you would like to perform any operation, which will cause that some new data will saved into blockchain, then you will need to have some bandwidth left, to perform such operation.
i mean - no. of simultaneous users fetching the EOS blockchain data.
Fetching data is another ...
I was able to run Single Node Testnet on Ubuntu using Docker on my machine with around 2GB RAM without problem (as bytemaster said it requires little memory actually).
The CPU and Disk Space are not mentioned explicitly. I guess you will need decent disk space once the blockchain increases in size.
Also, probably it's good idea to compare the hardware ...
A producer who does not maintain similar performance to other producers will fall behind and miss blocks. Also, under the subjective billing for resource usage this producer will cost users more from the CPU bandwidth than other producers. This will cause them to rapidly lose votes.
It depends on your understanding of cost. You don't loose an absolute number of tokens. So if you stake 3 token you will receive 3 token back after unstaking.
What you do pay is some opportunity cost in form of time, because you have to wait 3 days before you can unstake.
Another thing you pay is the lets call it inflation cost because of the ...
From the code:
* @class fork_database
* @brief manages light-weight state for all potential unconfirmed forks
* As new blocks are received, they are pushed into the fork database. The fork
* database tracks the longest chain and the last irreversible block number. All
* blocks older than the last irreversible block are freed ...
There are no official static minimum requirements for running a block producing node, but nodeos installation requires 8GB of RAM by default.
The available RAM of the network increases every block, and the network latency and processing speeds for various BPs vary significantly. In order to produce blocks, a node should be capable of staying synchronized ...
Yes they will need their own Block Producers to run the sidechain, however, should be able to perform cross chain communication one day so in theory, the side chain can communicate with the main chain.
I think that like in Steem, voters may change their BP votes as often as they wish (subject to bandwidth limits). Perhaps the vote decay operation runs once a week though, so to ensure your vote is never in a decayed state, you would need to reassert it that frequently. I haven't checked the code to confirm this though.
The node that receives the transaction, validates and runs it first (even a non-producing node).
If it's successfully run, the transaction becomes pre-validated and the node forwards it to all the connected peers.
This process repeats until all nodes in the network eventually run this transaction.
Some of the connected nodes will be block producing nodes ...
Yes, it is possible with eosjs.
You can create an instance of Eos with a given config and then do getTableRows with the given parameters. You might find the api footprint here. Also check the github repository for more info about the config parameters.
Here is an example how I do it at EOSIO BP alarm:
eos = new Eos(config)
In the current specification, each of the 21 Block Producers will produce 6 seconds worth of blocks (i.e. 12 blocks) before handing off to the next producer in the production order. (see bytemaster's answer below for more details)
This can be done in 2 steps:
1. Find the latest block
This can be done using the get_info() end-point. Example:
$ curl http://publicapi-mainnet.eosauthority.com/v1/chain/get_info
and save head_block_id (e.g. 0064aed8bf489f860ea6897f36fcd0ca3d60c0364479afc6259e7262d7bd200b)
2. Check the header of the latest block
curl --request POST \
cleos set contract [OPTIONS] account contract-dir [wast-file] [abi-file]; Gives Error 3090004: missing required authority when BP endpoint is used
Sounds like you are trying to deploy a smart contract with the permissions of an account you don't have on the main net. E.g. trying to deploy a contract at eosio.token which is something you'll have the ...