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