Integrator FAQ
Orientation
What is a good project summary for NEAR?
NEAR is a sharded, public, proof-of-stake blockchain and smart contract platform. It is built in Rust and contracts compile to WASM. It is conceptually similar to Ethereum 2.0.
What's special about NEAR?
NEAR is the blockchain for builders.
If you understand the basics of web development, you can write, test and deploy scalable decentralized applications in minutes on the most developer-friendly blockchain without having to learn new tools or languages.
Is NEAR open source?
Yes. Have a look at our GitHub organization.
How are cryptographic functions used?
We support both secp256k1
and ed25519
for account keys and ed25519
for signing transactions. We currently use the ed25519_dalek
and sha2
libraries for crypto.
Do you have any on-chain governance mechanisms?
NEAR does not have any on-chain governance at the moment. Any changes to state or state transition function must be done through a hard fork.
Do you have a bug-bounty program?
Our plan is to have a transparent Bug Bounty program with clear guidelines for paying out to those reporting issues. Payments will likely be based on publicly available rankings provided by protocol developers based on issue severity.
What contracts should we be aware of right now?
We have developed a number of initial contracts with ones in bold being most mature at time of writing
- Staking Pool / Delegation contract
- Lockup / Vesting contract
- Whitelist Contract
- Staking Pool Factory
- Multisig contract
Do you have a cold wallet implementation (ie. Ledger)?
https://github.com/near/near-ledger-app
Validators
What is the process for becoming a validator?
Validation is permissionless and determined via auction. Parties who want to become a validator submit a special transaction to the chain one day ahead which indicates how many tokens they want to stake. An auction is run which determines the minimum necessary stake to get a validation seat during the next epoch and, if the amount submitted is greater than the minimum threshold, the submitter will validate at least one shard during the next epoch.
How long does a validator remain a validator?
A validator will stop being a validator for the following reasons:
- Not producing enough blocks or chunks.
- Not getting elected in the auction for next epoch because their stake is not large enough.
- Getting slashed. Otherwise a validator will remain a validator indefinitely.
Validator election happens in epochs. The Nightshade whitepaper introduces epochs this way: "the maintenance of the network is done in epochs" where an epoch is a period of time on the order of half a day.
At the beginning of each epoch, some computation produces a list of validators for the very next epoch.
The input to this computation includes all accounts that have "raised their hand to be a validator"
by submitting a special transaction (StakeAction
)
expressing the commitment of some amount of tokens over the system's staking threshold,
as well as validators from the previous epoch.
The output of this computation is a list of the validators for the very next epoch.