Git Product home page Git Product logo

hyperledger / besu-docs Goto Github PK

View Code? Open in Web Editor NEW
60.0 13.0 101.0 723.63 MB

Documentation for Hyperledger Besu enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu

Home Page: https://besu.hyperledger.org/

License: Apache License 2.0

JavaScript 44.79% CSS 45.24% TypeScript 9.97%
besu besu-docs besu-documentation ethereum-client ethereum java crypto privacy clique poa

besu-docs's Introduction

Hyperledger Besu documentation

Hyperledger Besu is an open source Ethereum client developed under the Apache 2.0 license and written in Java. It runs on public and private networks.

This repository contains documentation for Besu, and is built using Docusaurus. The doc site is hosted at besu.hyperledger.org.

If you're looking for the software source code, go to the Besu software repository.

View older doc versions

See the Hyperledger Besu wiki for information about viewing and hosting older versions of the documentation on your own infrastructure.

Contribute to the docs

See the documentation section in the Hyperledger Besu wiki for information about submitting documentation changes and previewing the site locally.

Questions?

If you have questions about Besu, ask on the besu channel on Hyperledger Discord.

besu-docs's People

Contributors

ahamlat avatar alexandratran avatar anmolsirola avatar antonydenyer avatar bgravenorst avatar demmojo avatar dependabot[bot] avatar edjojob avatar ezzahhh avatar faraggi avatar gabriel-trintinalia avatar jflo avatar joaniefromtheblock avatar joshuafernandes avatar lucassaldanha avatar macfarla avatar madelinemurray avatar mark-terry avatar matthew1001 avatar mjsmike62 avatar nicolasmassart avatar non-fungible-nelson avatar pscott avatar ratanrsur avatar rolandtyler avatar ryjones avatar sgregglives avatar siladu avatar stephenhodgkiss avatar timbeiko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

besu-docs's Issues

Add recommendation on size of Java VM

Add the recommended size of the Java VM to the docs:
Min 4GB for private. 16GB for mainnet, but really depends on your usage, network setup, etc.

Besu will use the most memory while syncing and then drop back. Use monitoring to see what your node is doing.

@shemnon @joshuafernandes @EdJoJob are the input/reviewers for this.

Doc where extra gas is coming from for privacy marker transaction

The public transaction gas usage is calculated in the following way:

Gas usage = TX_BASE_COST + (TX_DATA_ZERO * NO_OF_ZEROS) + (TX_DATA_NON_ZERO * NO_OF_NON_ZEROS)

where,

TX_BASE_COST = 21000
TX_DATA_ZERO = 4
NO_OF_ZEROS = number of "00" in the hex payload of the transaction
TX_DATA_NON_ZERO = 68 pre-istanbul / 16 post-istanbul (as in istanbul hard fork)
NO_OF_NON_ZEROS = number of non-"00" in the hex payload of the transaction i.e. number of pairs in the hex that are not "00"

The PMT has 32 bytes of non-zero hex. It therefore consumes:

Gas usage of PMT = 21000 + (4 * 0) + (68 * 32) = 21000 + 2176 = 23176

Post-Instanbul the PMT will consume:

Gas usage of PMT post-istanbul = 21000 + (4 * 0) + (16 * 32) = 21000 + 512 = 21512

Invoking the Privacy Precompiled Contract consumes 0 gas.

More info: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2028.md

Comments from the original JI https://jira.hyperledger.org/browse/BESU-75:

Madeline Murray - Need to confirm where the extra 2992 is coming from 
 
Madeline Murray - Document where extra gas is coming from.

Also update in Besu and web3js, and web3j
  
Ivaylo Kirilov September 16, 20the changes required in Besu are documentation related only
 
Ivaylo Kirilov September 17, 2019, 12:14 AM
 
fixed in web3j - hyperledger/web3j#1029

Besu Wiki Article Explaining Release Philosophy

We need a wiki article explaining our general release cadence philosophy, CI/CD driven numbering scheme, and rough guidance on quarterly big releases.

From Slack:

i.e. our numbering is ..
We bump milestone when a release is big enough (such as full mainnet compliance). We do a quarterly release where we upgrade all dependencies with a RC release, and bi-weekly all come in CD style. We don’t do multiple branches.

Documentation label issue

Correct the spelling error on markdown YAML file (mkdocs.yml) at line no. 160 from Vadidating to Validating.
Screenshot 2020-02-07 at 15 59 10

Update markdownlint and linkchecker

Markdownlint

Some rules are ignored because markdownlint is not able to handle our extended markdown syntax and more specifically the code blocks.

But we have also other issues like not being able to exclude auto generated files from the check or easily extend the tool.

For this and because this tool is Ruby that we don't really have already in our tool suite preventing us to fix and provide PRs, moving to the Node,js version of the tool would be wise: https://github.com/DavidAnson/markdownlint

Markdown Link Checker

Update dependency to benefit from the latest version on https://github.com/tcort/markdown-link-check for which I am now a maintainer

Warning needed on configuration starting a miner and opening RPC

User feedback about configuration starting a miner and opening RPC.

https://besu.hyperledger.org/en/latest/HowTo/Get-Started/Starting-node/

The configuration example on this page includes two things that seem ill-advised. There should, at least, be a warning to the user about (a) that this configuration starts a miner, and (b) that the RPC is 'wide open'. In the past, people said about both geth and parity that opening one's RPC in this way was asking for trouble. Maybe you shouldn't make that the default without at least a warning to the reader.

Document admin_reloadPlugin API

Providing a new RPC method admin_reloadPlugin to dynamically (without the need to restart Besu) reload plugin config (this required a new reloadConfiguration method in Besu plugin api as it’s available for all plugins) see hyperledger/besu#261

Add explanation of API options - ETH, CLIQUE, etc

User feedback:
The documentation does not specifically say what the commands for ETH,ADMIN,API,CLIQUE etc do for RPC, this is more of a nice thing as one can figure it out but its not explicitly stated I believe

Explain what network ID and chain ID are

https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/ explains how to set network ID and chain ID but doesn’t explain exactly what they are.

Requirements:
Add content to network ID and chain ID page explaining what they are and the implications of them being the same/different. eg, two networks with the same network IDs and different chain IDs or two networks with different network IDs and the same chain IDs.

From Hotjar feedback:
This all sounds like the network ID and chain ID are not conceptually the same but in practice they are always the same. So, CAN they be different? Not clear. Would be nice to make it explicit.

Improve permissioning documentation

User feedback:
The permissioning on-chain smart contracts documentation is lacking and is unclear if its last release (sept, 2019) is the current one that should be used .

Add Web3j Example to Besu docs

The How To section currently has an example of creating a signed tx using Web3.js.

We should add a Web3j example as well.

More info required about limiting remote connections

In docs/HowTo/Find-and-Connect/Managing-Peers.md#limiting-remote-connections, more details required about why limiting remote connections is unnecessary. Perhaps when you should and when you should not limit remote connections.

Clarify return values for JSON-RPC methods miner_start and miner_stop

Some discussion around the desired return values from JSON-RPC methods miner_start and miner_stop came up in the following PR:
hyperledger/besu#104 (comment)

As of #104, miner_start will return true if the node is already mining or mining was successfully started. And miner_stop will return true if the node was already idle or mining was stopped.

An alternative would be to return true if the mining status was actually updated (similar to the behavior of other methods like admin_addPeer / admin_removePeer which return true if the node was successfully modified).

We should decide on the desired behavior and update our documentation to clarify the meaning of the returned boolean: https://besu.hyperledger.org/en/latest/Reference/API-Methods/#miner_start


We will keep the current functionality, but we should update the documentation to be more explicit.

In short
miner_start: returns true if mining was started or if the node was already mining
miner_stop: returns true if mining was stopped or if the node was not mining

Make clear the difference between full and archive nodes

If you have pruning or fast sync enabled, you have a full node.
Pruning and fast sync must be disabled to get an archive node.

Full node - the full world state is available for the chain head (and generally a bit before that).
Archive node - the full world state is available for every block
Light node - parts of the world state are requested on demand, but no full world state is kept. Currently Besu doesn't have a light node mode.

Include approx size required for mainnet nodes for full and archive nodes in system requirements.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.