github.com/klaytn/klaytn@v1.12.1/blockchain/state/doc.go (about)

     1  // Copyright 2018 The klaytn Authors
     2  // Copyright 2014 The go-ethereum Authors
     3  // This file is part of the go-ethereum library.
     4  //
     5  // The go-ethereum library is free software: you can redistribute it and/or modify
     6  // it under the terms of the GNU Lesser General Public License as published by
     7  // the Free Software Foundation, either version 3 of the License, or
     8  // (at your option) any later version.
     9  //
    10  // The go-ethereum library is distributed in the hope that it will be useful,
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    13  // GNU Lesser General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU Lesser General Public License
    16  // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
    17  //
    18  // This file is derived from core/state/statdb.go (2018/06/04).
    19  // Modified and improved for the klaytn development.
    20  
    21  /*
    22  Package state provides an uppermost caching layer of the Klaytn state trie.
    23  This package is used to read/write stateObject from/to StateDB and it also acts as a bridge between
    24  the objects and the persistent layer.
    25  
    26  Overview of state package
    27  
    28  stateObject represents a Klaytn account identified by its address.
    29  Once it is loaded from the persistent layer, it is cached and managed by StateDB.
    30  
    31  StateDB caches stateObjects and mediates the operations to them.
    32  
    33  
    34  Source Files
    35  
    36  Related functions and variables are defined in the files listed below
    37    - database.go              : Defines Database and other interfaces used in the package
    38    - dump.go                  : Functions to dump the contents of StateDB both in raw format and indented format
    39    - journal.go               : journal and state changes to track the list of state modifications since the last state commit
    40    - state_object.go          : Implementation of stateObject
    41    - state_object_encoder.go  : stateObjectEncoder is used to encode stateObject in parallel manner
    42    - statedb.go               : Implementation of StateDB
    43    - sync.go                  : Functions to schedule a state trie download
    44  */
    45  package state