good morning!!!!

Skip to content
Snippets Groups Projects
  1. Aug 25, 2021
    • Sina Mahmoodi's avatar
      node: remove dependency on wallet backend packages (#23019) · 108eec3f
      Sina Mahmoodi authored
      * accounts: new AddBackends method in manager
      
      * node,cmd/geth: mv accman backend init to cmd/geth
      
      * node,cmd/geth: mv scrypt config downstreawm from node
      
      * accounts: use static buffer size for accman sub chan
      
      minor fix
      
      * accounts,cmd/geth: update accman backends through its event loop
      
      * accounts,node: add comments
      
      * accounts: un-export newBackendEvent
      
      * accounts: use chan instead of wg in newBlockEvent
      
      * node: rename isKeyDirEphem
      
      * accounts,cmd: AddBackends->AddBackend
      
      * accounts: fix potential blocking when adding backend
      Unverified
      108eec3f
  2. Aug 24, 2021
  3. Feb 23, 2021
  4. Feb 02, 2021
  5. Jan 13, 2021
  6. Aug 03, 2020
    • rene's avatar
      node: refactor package node (#21105) · c0c01612
      rene authored
      This PR significantly changes the APIs for instantiating Ethereum nodes in
      a Go program. The new APIs are not backwards-compatible, but we feel that
      this is made up for by the much simpler way of registering services on
      node.Node. You can find more information and rationale in the design
      document: https://gist.github.com/renaynay/5bec2de19fde66f4d04c535fd24f0775.
      
      There is also a new feature in Node's Go API: it is now possible to
      register arbitrary handlers on the user-facing HTTP server. In geth, this
      facility is used to enable GraphQL.
      
      There is a single minor change relevant for geth users in this PR: The
      GraphQL API is no longer available separately from the JSON-RPC HTTP
      server. If you want GraphQL, you need to enable it using the
      ./geth --http --graphql flag combination.
      
      The --graphql.port and --graphql.addr flags are no longer available.
      Unverified
      c0c01612
  7. Jul 06, 2020
  8. Jun 08, 2020
  9. Jun 07, 2019
    • Felix Lange's avatar
      p2p/enode: improve IPv6 support, add ENR text representation (#19663) · e83c3ccc
      Felix Lange authored
      * p2p/enr: add entries for for IPv4/IPv6 separation
      
      This adds entry types for "ip6", "udp6", "tcp6" keys. The IP type stays
      around because removing it would break a lot of code and force everyone
      to care about the distinction.
      
      * p2p/enode: track IPv4 and IPv6 address separately
      
      LocalNode predicts the local node's UDP endpoint and updates the record.
      This change makes it predict IPv4 and IPv6 endpoints separately since
      they can now be in the record at the same time.
      
      * p2p/enode: implement base64 text format
      * all: switch to enode.Parse(...)
      
      This allows passing base64-encoded node records to all the places that
      previously accepted enode:// URLs. The URL format is still supported.
      
      * cmd/bootnode, p2p: log node URL instead of ENR
      
      ...and return the base64 record in NodeInfo.
      Unverified
      e83c3ccc
  10. Jun 04, 2019
  11. Jun 03, 2019
  12. May 31, 2019
    • Guillaume Ballet's avatar
      accounts/scwallet: flag to specify path to smartcard daemon (#19439) · 7a22da98
      Guillaume Ballet authored
      * accounts/scwallet: Add a switch to enable smartcard support
      
      * accounts: change the meaning of the switch
      
      * disable card support in windows until tested
      * only activate account if pcscd socket file is present
      * the switch is now the path to the socket file
      
      * accounts/scwallet: holiman's review feedback
      
      * accounts/scwallet: send the path to go-pcsclite
      
      * accounts/scwallet: add default, per platform path
      
      * accounts/scwallet: fix error log warning
      
      * accounts/scwallet: update pcsc lib to latest
      
      * accounts/scwallet: use default path from pcsclite
      
      * scwallet: forgot to change switch name
      
      * cmd: minor style cleanups (error handling first, then happy path)
      7a22da98
  13. Apr 12, 2019
  14. Apr 08, 2019
  15. Apr 04, 2019
  16. Feb 18, 2019
  17. Feb 05, 2019
    • Martin Holst Swende's avatar
      accounts, eth, clique, signer: support for external signer API (#18079) · 43e8efe8
      Martin Holst Swende authored
      * accounts, eth, clique: implement external backend + move sighash calc to backend
      
      * signer: implement account_Version on external API
      
      * accounts/external: enable ipc, add copyright
      
      * accounts, internal, signer: formatting
      
      * node: go fmt
      
      * flags: disallow --dev in combo with --externalsigner
      
      * accounts: remove clique-specific signing method, replace with more generic
      
      * accounts, consensus: formatting + fix error in tests
      
      * signer/core: remove (test-) import cycle
      
      * clique: remove unused import
      
      * accounts: remove CliqueHash and avoid dependency on package crypto
      
      * consensus/clique: unduplicate header encoding
      Unverified
      43e8efe8
  18. Jan 21, 2019
    • Kris Shinn's avatar
      GraphQL master FF for review (#18445) · f91312db
      Kris Shinn authored
      
      * Initial work on a graphql API
      
      * Added receipts, and more transaction fields.
      
      * Finish receipts, add logs
      
      * Add transactionCount to block
      
      * Add types  and .
      
      * Update Block type to be compatible with ethql
      
      * Rename nonce to transactionCount in Account, to be compatible with ethql
      
      * Update transaction, receipt and log to match ethql
      
      * Add  query operator, for a range of blocks
      
      * Added ommerCount to Block
      
      * Add transactionAt and ommerAt to Block
      
      * Added sendRawTransaction mutation
      
      * Add Call and EstimateGas to graphQL API
      
      * Refactored to use hexutil.Bytes instead of HexBytes
      
      * Replace BigNum with hexutil.Big
      
      * Refactor call and estimateGas to use ethapi struct type
      
      * Replace ethgraphql.Address with common.Address
      
      * Replace ethgraphql.Hash with common.Hash
      
      * Converted most quantities to Long instead of Int
      
      * Add support for logs
      
      * Fix bug in runFilter
      
      * Restructured Transaction to work primarily with headers, so uncle data is reported properly
      
      * Add gasPrice API
      
      * Add protocolVersion API
      
      * Add syncing API
      
      * Moved schema into its own source file
      
      * Move some single use args types into anonymous structs
      
      * Add doc-comments
      
      * Fixed backend fetching to use context
      
      * Added (very) basic tests
      
      * Add documentation to the graphql schema
      
      * Fix reversion for formatting of big numbers
      
      * Correct spelling error
      
      * s/BigInt/Long/
      
      * Update common/types.go
      
      * Fixes in response to review
      
      * Fix lint error
      
      * Updated calls on private functions
      
      * Fix typo in graphql.go
      
      * Rollback ethapi breaking changes for graphql support
      Co-Authored-By: default avatarArachnid <arachnid@notdot.net>
      f91312db
  19. Dec 07, 2018
  20. Sep 24, 2018
    • Felix Lange's avatar
      all: new p2p node representation (#17643) · 30cd5c18
      Felix Lange authored
      Package p2p/enode provides a generalized representation of p2p nodes
      which can contain arbitrary information in key/value pairs. It is also
      the new home for the node database. The "v4" identity scheme is also
      moved here from p2p/enr to remove the dependency on Ethereum crypto from
      that package.
      
      Record signature handling is changed significantly. The identity scheme
      registry is removed and acceptable schemes must be passed to any method
      that needs identity. This means records must now be validated explicitly
      after decoding.
      
      The enode API is designed to make signature handling easy and safe: most
      APIs around the codebase work with enode.Node, which is a wrapper around
      a valid record. Going from enr.Record to enode.Node requires a valid
      signature.
      
      * p2p/discover: port to p2p/enode
      
      This ports the discovery code to the new node representation in
      p2p/enode. The wire protocol is unchanged, this can be considered a
      refactoring change. The Kademlia table can now deal with nodes using an
      arbitrary identity scheme. This requires a few incompatible API changes:
      
        - Table.Lookup is not available anymore. It used to take a public key
          as argument because v4 protocol requires one. Its replacement is
          LookupRandom.
        - Table.Resolve takes *enode.Node instead of NodeID. This is also for
          v4 protocol compatibility because nodes cannot be looked up by ID
          alone.
        - Types Node and NodeID are gone. Further commits in the series will be
          fixes all over the the codebase to deal with those removals.
      
      * p2p: port to p2p/enode and discovery changes
      
      This adapts package p2p to the changes in p2p/discover. All uses of
      discover.Node and discover.NodeID are replaced by their equivalents from
      p2p/enode.
      
      New API is added to retrieve the enode.Node instance of a peer. The
      behavior of Server.Self with discovery disabled is improved. It now
      tries much harder to report a working IP address, falling back to
      127.0.0.1 if no suitable address can be determined through other means.
      These changes were needed for tests of other packages later in the
      series.
      
      * p2p/simulations, p2p/testing: port to p2p/enode
      
      No surprises here, mostly replacements of discover.Node, discover.NodeID
      with their new equivalents. The 'interesting' API changes are:
      
       - testing.ProtocolSession tracks complete nodes, not just their IDs.
       - adapters.NodeConfig has a new method to create a complete node.
      
      These changes were needed to make swarm tests work.
      
      Note that the NodeID change makes the code incompatible with old
      simulation snapshots.
      
      * whisper/whisperv5, whisper/whisperv6: port to p2p/enode
      
      This port was easy because whisper uses []byte for node IDs and
      URL strings in the API.
      
      * eth: port to p2p/enode
      
      Again, easy to port because eth uses strings for node IDs and doesn't
      care about node information in any way.
      
      * les: port to p2p/enode
      
      Apart from replacing discover.NodeID with enode.ID, most changes are in
      the server pool code. It now deals with complete nodes instead
      of (Pubkey, IP, Port) triples. The database format is unchanged for now,
      but we should probably change it to use the node database later.
      
      * node: port to p2p/enode
      
      This change simply replaces discover.Node and discover.NodeID with their
      new equivalents.
      
      * swarm/network: port to p2p/enode
      
      Swarm has its own node address representation, BzzAddr, containing both
      an overlay address (the hash of a secp256k1 public key) and an underlay
      address (enode:// URL).
      
      There are no changes to the BzzAddr format in this commit, but certain
      operations such as creating a BzzAddr from a node ID are now impossible
      because node IDs aren't public keys anymore.
      
      Most swarm-related changes in the series remove uses of
      NewAddrFromNodeID, replacing it with NewAddr which takes a complete node
      as argument. ToOverlayAddr is removed because we can just use the node
      ID directly.
      Unverified
      30cd5c18
  21. Jul 31, 2018
    • Ryan Schneider's avatar
      rpc: make HTTP RPC timeouts configurable, raise defaults (#17240) · 5d7e1853
      Ryan Schneider authored
      * rpc: Make HTTP server timeout values configurable
      
      * rpc: Remove flags for setting HTTP Timeouts, configuring via .toml is sufficient.
      
      * rpc: Replace separate constants with a single default struct.
      
      * rpc: Update HTTP Server Read and Write Timeouts to 30s.
      
      * rpc: Remove redundant NewDefaultHTTPTimeouts function.
      
      * rpc: document HTTPTimeouts.
      
      * rpc: sanitize timeout values for library use
      5d7e1853
  22. Jul 11, 2018
  23. Apr 19, 2018
  24. Feb 12, 2018
    • Martin Holst Swende's avatar
      rpc: dns rebind protection (#15962) · 589b603a
      Martin Holst Swende authored
      * cmd,node,rpc: add allowedHosts to prevent dns rebinding attacks
      
      * p2p,node: Fix bug with dumpconfig introduced in r54aeb8e4c0bb9f0e7a6c67258af67df3b266af3d
      
      * rpc: add wildcard support for rpcallowedhosts + go fmt
      
      * cmd/geth, cmd/utils, node, rpc: ignore direct ip(v4/6) addresses in rpc virtual hostnames check
      
      * http, rpc, utils: make vhosts into map, address review concerns
      
      * node: change log messages to use geth standard (not sprintf)
      
      * rpc: fix spelling
      589b603a
  25. Dec 01, 2017
    • Lewis Marshall's avatar
      p2p/simulations: various stability fixes (#15198) · 54aeb8e4
      Lewis Marshall authored
      p2p/simulations: introduce dialBan
      
      - Refactor simulations/network connection getters to support
        avoiding simultaneous dials between two peers If two peers dial
        simultaneously, the connection will be dropped to help avoid
        that, we essentially lock the connection object with a
        timestamp which serves as a ban on dialing for a period of time
        (dialBanTimeout).
      
      - The connection getter InitConn can be wrapped and passed to the
        nodes via adapters.NodeConfig#Reachable field and then used by
        the respective services when they initiate connections. This
        massively stablise the emerging connectivity when running with
        hundreds of nodes bootstrapping a network.
      
      p2p: add Inbound public method to p2p.Peer
      
      p2p/simulations: Add server id to logs to support debugging
      in-memory network simulations when multiple peers are logging.
      
      p2p: SetupConn now returns error. The dialer checks the error and
      only calls resolve if the actual TCP dial fails.
      54aeb8e4
  26. Nov 20, 2017
  27. Sep 25, 2017
    • Lewis Marshall's avatar
      p2p: add network simulation framework (#14982) · 9feec51e
      Lewis Marshall authored
      This commit introduces a network simulation framework which
      can be used to run simulated networks of devp2p nodes. The
      intention is to use this for testing protocols, performing
      benchmarks and visualising emergent network behaviour.
      9feec51e
  28. Aug 09, 2017
  29. Aug 07, 2017
  30. Jul 18, 2017
  31. Apr 20, 2017
  32. Apr 12, 2017
    • Bas van Kervel's avatar
      cmd/utils, node: remove unused solc references and improve RPC config (#14324) · 5e29f4be
      Bas van Kervel authored
      Currently http cors and websocket origins are a comma separated string in the
      config object. These are replaced with string arrays that are more expressive in
      case of a config file.
      5e29f4be
    • Felix Lange's avatar
      cmd/geth: add --config file flag (#13875) · 30d706c3
      Felix Lange authored
      * p2p/discover, p2p/discv5: add marshaling methods to Node
      
      * p2p/netutil: make Netlist decodable from TOML
      
      * common/math: encode nil HexOrDecimal256 as 0x0
      
      * cmd/geth: add --config file flag
      
      * cmd/geth: add missing license header
      
      * eth: prettify Config again, fix tests
      
      * eth: use gasprice.Config instead of duplicating its fields
      
      * eth/gasprice: hide nil default from dumpconfig output
      
      * cmd/geth: hide genesis block in dumpconfig output
      
      * node: make tests compile
      
      * console: fix tests
      
      * cmd/geth: make TOML keys look exactly like Go struct fields
      
      * p2p: use discovery by default
      
      This makes the zero Config slightly more useful. It also fixes package
      node tests because Node detects reuse of the datadir through the
      NodeDatabase.
      
      * cmd/geth: make ethstats URL settable through config file
      
      * cmd/faucet: fix configuration
      
      * cmd/geth: dedup attach tests
      
      * eth: add comment for DefaultConfig
      
      * eth: pass downloader.SyncMode in Config
      
      This removes the FastSync, LightSync flags in favour of a more
      general SyncMode flag.
      
      * cmd/utils: remove jitvm flags
      
      * cmd/utils: make mutually exclusive flag error prettier
      
      It now reads:
      
         Fatal: flags --dev, --testnet can't be used at the same time
      
      * p2p: fix typo
      
      * node: add DefaultConfig, use it for geth
      
      * mobile: add missing NoDiscovery option
      
      * cmd/utils: drop MakeNode
      
      This exposed a couple of places that needed to be updated to use
      node.DefaultConfig.
      
      * node: fix typo
      
      * eth: make fast sync the default mode
      
      * cmd/utils: remove IPCApiFlag (unused)
      
      * node: remove default IPC path
      
      Set it in the frontends instead.
      
      * cmd/geth: add --syncmode
      
      * cmd/utils: make --ipcdisable and --ipcpath mutually exclusive
      
      * cmd/utils: don't enable WS, HTTP when setting addr
      
      * cmd/utils: fix --identity
      30d706c3
  33. Apr 05, 2017
  34. Feb 23, 2017
  35. Feb 13, 2017
Loading