Since putting together the FAQ a while back, we've seen significant changes to the Steem ecosystem and have had many new users join us, so I think an update is overdue. Given that the full document is 56 pages long, I'm breaking it up into smaller sections so it's not overwhelming for readers. I'll be updating and sharing it one part at a time. Included in this post is "Technical Questions."
This part is entitled "Technical Questions," but most are not really THAT technical. I didn't make many changes to this section, but there were a few. I deleted some parts that were no longer relevant (like the section about Liquidity Rewards, for example, which has been irrelevant for months).
Since @pfunk and @timcliff are significantly more knowledgeable about these things than I am, and since they will soon be updating the FAQ on Steemit.com using my posts as a starting point, I'll leave the majority of the updating of this section to them.
My final FAQ post will include the "Other" category.
If you have any questions about Steem, let me know and I'll try to get them answered or add them to the updated FAQ.
Technical Questions
How can Steem consistently produce blocks every 3 seconds since proof of work takes an unpredictable amount of time?
To have consistent and reliable block production every 3 seconds, Steem separates block output from solving proof of work. When a miner solves a proof of work for Steem, they broadcast a transaction containing the work. The next scheduled witness includes the transaction into the blockchain. When the transaction is included, the miner is added to the queue of miners scheduled to produce blocks. Each round, one miner is popped from the queue and listed in the active set of witnesses.
See: What is the difference between Proof of Work and Proof of Stake?
What are Steemit witnesses?
Technically, there is no such thing as a Steemit witness. But rather a witness for the Steem blockchain. The Steem blockchain requires a set of people to create blocks and uses a consensus mechanism called Delegated Proof of Stake, or DPOS. The people delegated to create these blocks are called witnesses.
They are voted on by owners of Steem accounts, using a steem-power weighted system. They are some of the most trusted members of the community and tech-savvy. They are expected to keep a node running every second of every day.
Blocks are produced in rounds, 63 seconds per round and 21 blocks per round. Every round, the top 19 witness accounts are delegated to generate a block, a backup witness produces one block, and the last by a miner.
In addition to producing blocks, witnesses are also responsible for providing a price feed of the US dollar value of Steem as well as setting the Steem Dollar interest rate. As an incentive to do all their required tasks, the system rewards witnesses one Steem for each block they produce.
@someguy123/seriously-what-is-a-witness-why-should-i-care-how-do-i-become-one-answer
@pfunk/a-full-steemit-user-s-guide-to-steem-witnesses
Why should I vote for witnesses?
Each steemit account has 30 votes to the weight of their Steem Power. Members of the steemit community use their accounts to vote for the most trusted members of the community. As miners, these witnesses are often very tech-savvy. They are expected to keep a node running every second of every day. The witnesses that are more favorable to the community are often the community members who are putting in a lot of extra work to improve the network by developing things for example that are useful to the community.
Where can I vote for witnesses?
https://steemit.com/~witnesses
How are witnesses expected to behave?
Witnesses are employees of the blockchain. They are responsible for critical jobs and paid well. Therefore, the community should hold witnesses to the highest of standards.
A well-qualified witness should have satisfactory answers to all these questions:
What makes you qualified for the job?
Are you reliable?
What kind of hardware are you using?
What kind of internet connection do you have (ISP, speed, etc.)??
If things break, how fast you can fix them?
Have you prepared to mitigate damage from dangerous threats like coordinated attacks against all Steem witnesses at the same time?
Are you helping other witnesses?
Is Steemit open source?
Yes, Steemit.com is 100% open source.
@steemitblog/steemit-com-is-now-open-source
Is there an API?
Yes, there is a steem API.
@fabien/steem-api-now-released
How do I use cli_wallet?
Steem Command Line Guide - A Learner’s Guide to Using cli_wallet
@pfunk/a-learner-s-guide-to-using-steem-s-cliwallet-part-1
What is available for developers interested in Steemit?
Many software engineers are currently leveraging the open-source code to build their applications on Steem. There are more than sixty so far.
https://github.com/steemit/steem