# Priavte Chain Env

Here are the instructions of the configuration of the private chain raft consensus test environment and the meaning of the parameters：
```
Title="local"
TestNet=true
FixTime=false
[log]
# Log level, support debug(dbug)/info/warn/error(eror)/crit
loglevel = "info"
logConsoleLevel = "info"
# Log file name, where all generated log files are placed, 
logFile = "logs/chain33.log"
# Maximum value of a single log file (unit: megabyte)
maxFileSize = 300
# Maximum number of saved history log files 
maxBackups = 100
# Maximum number of saved history log messages (unit: day)
maxAge = 28
# Whether log file names use local time (if not, then use UTC time)
localTime = true
# Whether the history log file is compressed (compressed format is gz)
compress = true
# Whether to print the call source file and line number
callerFile = false
# Whether to print the calling method
callerFunction = false
[blockchain]
# Number of cached blocks
defCacheSize=128
# The maximum number of blocks to apply for at one time when synchronizing blocks
maxFetchBlockNum=128
# The time interval between requesting a synchronized block from the opposite node
timeoutSeconds=5
# Database type used
driver="leveldb"
# Database file directory
dbPath="datadir"
# Database cache size
dbCache=64
# Whether it is a single node
singleMode=true
# Whether need to write to disk immediately when bulk writing to a database. You can set false for non-ssd computers to improve performance.
batchsync=false
# Whether to record the sequence of adding or deleting blocks, if the node act as the main chain node and provides service for the parallel chain node, it needs to be set to true
isRecordBlockSequence=true
# Whether it is a parallel chain node
isParaChain=false
# Whether to turn on the tx quick query index
enableTxQuickIndex=false
[p2p]
# P2P service monitor port number
port=13802
# Seed node, in ip:port format, with multiple nodes separated by commas, such as seeds=["10.0.0.1:13802","10.0.0.2:13802","10.0.0.3:13802"]
seeds=[]
# Whether to start P2P service
enable=true
# Whether it is a seed node
isSeed=false
# Whether to provide external services as a server
serverStart=true
# Whether to use the built-in seed node
innerSeedEnable=false
# Whether to use Github to obtain seed nodes
useGithub=false
# The maximum number of access nodes
innerBounds=300
# Database type
driver="leveldb"
# Database file directory
dbPath="datadir/addrbook"
# Database cache size
dbCache=4
# GRPC request log file
grpcLogFile="grpc33.log"
# P2P version number,choose different version in different test network  
version=200
verMix=200
verMax=200
[rpc]
# jrpc bind address
jrpcBindAddr="localhost:8801"
# grpc bind address
grpcBindAddr="localhost:8802"
# White list of IP address allowed to access, default is "*", allow all IP to access
whitelist=["127.0.0.1"]
# JRPC requests a whitelist, which defaults to "*", allowing access to all RPC methods
jrpcFuncWhitelist=["*"]
# JRPC method request blacklist, prohibit the call of RPC method configured in the blacklist, generally used in conjunction with the white list, the default is empty
# jrpcFuncBlacklist=["xxxx"]
# GRPC methods request whitelist, default is "*", allowing access to all RPC methods
grpcFuncWhitelist=["*"]
# GRPC method request blacklist, prohibit the call of RPC method configured in the blacklist, generally used in conjunction with the white list, the default is empty
# grpcFuncBlacklist=["xxx"]
# Whether to turn on HTTPS
enableTLS=false
# Certificate files, certificates and private key files can be generated by the cli tool
certFile="cert.pem"
# Private key files
keyFile="key.pem"
[mempool]
# Mempool queue name, matching timeline, score, price
name="timeline"
# Mempool cache size, default is 10240
poolCacheSize=10240
# Minimum transaction fee, no default value, and value is required, generally 100,000
minTxFee=100000
# The maximum number of transactions per account in mempool, default is 100 
maxTxNumPerAccount=10000
# timeline, default
[mempool.sub.timeline]
# Mempool cache size, default is 10240
poolCacheSize=10240
# Minimum transaction fee, no default value, and value is required, generally 100,000
minTxFee=100000
# The maximum number of transactions per account in mempool, default is 100 
maxTxNumPerAccount=10000
# score is a queue mode (score = constant a * fee /transaction bytes - c onstant b * time * quantitative c, queued by score, high priority, constant a, b and quantitative c can be configured), sorted by score
[mempool.sub.score]
# Mempool cache size, default is 10240
poolCacheSize=10240
# Minimum transaction fee, no default value, and value is required, generally 100,000
minTxFee=100000
# The maximum number of transactions per account in mempool, default is 100 
maxTxNumPerAccount=10000
# Weight of waiting time
timeParam=1
# An appropriate constant for the service charge relative to time, take the first four digits of the current Unix timestamp, a score of 1e-5 higher on the queue is about the same as a score of 1s faster
priceConstant=1544
# Constant Proportion
pricePower=1
# Price is the queue mode (price = fee / transaction bytes, priority is given to the higher price, or the earlier time of the same price)
[mempool.sub.price]
# Mempool cache size, default is 10240
poolCacheSize=10240
# Minimum transaction fee, no default value, and value is required, generally 100,000
minTxFee=100000
# The maximum number of transactions per account in mempool, default is 100 
maxTxNumPerAccount=10000
[consensus]
#Consensus name
name="raft"
[mver.consensus]
#Fund account address
fundKeyAddr = "1BQXS6TxaYYG5mADaWij4AxhZZUTpw95a5"
#User reward
coinReward = 18
#Development fund reward
coinDevFund = 12
#ticket price
ticketPrice = 10000
#Difficulty of mining
powLimitBits = "0x1f00ffff"
retargetAdjustmentFactor = 4
futureBlockTime = 16
#Ticket freeze time
ticketFrozenTime = 5    #5s only for test
ticketWithdrawTime = 10 #10s only for test
ticketMinerWaitTime = 2 #2s only for test
#The maximum number of transactions contained by block 
maxTxNumber = 1600      #160
targetTimespan = 2304
targetTimePerBlock = 16
[consensus.sub.raft]
#Foundation trading address
genesis="1CbEVT9RnM5oZhWMj4fxUrJX94VtRotzvs"
#Foundation block time (UTC time)
genesisBlockTime=1514533394
# Consensus node ID,Different nodeIDs are set for different nodes (currently only 1, 2, 3 settings are supported)
nodeID=1
# Add and remove nodes through this port
raftAPIPort=9121
# Indicates whether to add new node 
isNewJoinNode=false
# Indicate the server IP and port in the raft cluster
peersURL="http://127.0.0.1:9021"
# Indicate the IP of the read-only node in the raft cluster（(only synchronize logs, not participate in the raft consensus）
readOnlyPeersURL=""
#Raft node IP and port. Multiple URLs are split by ","
addPeersURL=""
#The default number of records package in a snapshot from the raft
defaultSnapCount=1000
#Default writting block intervals in raft 
writeBlockSeconds=1
#The interval in which the leader sends the heartbeat packet in raft by default
heartbeatTick=1
[store]
# Data file storage name, currently support mavl,kvdb,kvmvcc,mpt
name="mavl"
# Data store driven category, currently support leveldb,goleveldb,memdb,gobadgerdb,ssdb,pegasus
driver="leveldb"
# Data file storage path
dbPath="datadir/mavltree"
# Cache size
dbCache=128
# Local database version
localdbVersion="1.0.0"
[store.sub.mavl]
# Whether to enable mavl prefix
enableMavlPrefix=false
# Whether enable MVCC,if enableMVCC in mavl is true then this has to be true
enableMVCC=false
# Whether to enable mavl data clipping
enableMavlPrune=false
# Cutting height interval
pruneHeight=10000
[wallet]
# Minimum transaction fee, unit is 0.00000001BTY(1e-8), default value is 100000, i.e. 0.001BTY
minFee=100000
# walletdb driver name, support leveldb/memdb/gobadgerdb/ssdb/pegasus
driver="leveldb"
# Walletdb Path
dbPath="wallet"
# Walletdb cache size
dbCache=16
# Wallet send transaction signature method
signType="secp256k1"
[wallet.sub.ticket]
# Cut the height interval to close ticket auto mining, default is false
minerdisable=false
# White list addresses that allow ticket mining, default config "*" for allowing all addresses
minerwhitelist=["*"]
[exec]
#Whether actuator free
isFree=false
#The minimum fee required for executing the actuator, lower than the MinFee set by Mempool and Wallet, and isFree = true will only take effect when minExecFee = 0
minExecFee=100000
#Whether to turn on the stat plug-in
enableStat=false
#Whether to turn on the MVCC plug-in
enableMVCC=false
alias=["token1:token","token2:token","token3:token"]
[exec.sub.token]
#Whether to save token transaction information
saveTokenTxList=true
#token Address of approver
tokenApprs = [
    "1Bsg9j6gW83sShoee1fZAt9TkUjcrCgA9S",
    "1Q8hGLfoGe63efeWa8fJ4Pnukhkngt6poK",
    "1LY8GFia5EiyoTodMLfkB5PHNNpXRqxhyB",
    "1GCzJDS6HbgTQ2emade7mEJGGWFfA15pS9",
    "1JYB8sxi4He5pZWHCd3Zi2nypQ4JMB6AxN",
    "12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv",
]
[exec.sub.cert]
# Whether enable certificate validation and signature
enable=false
# Encrypted file path
cryptoPath="authdir/crypto"
# Signature type with certificate, support "auth_ecdsa", "auth_sm2"
signType="auth_ecdsa
[exec.sub.relay]
#relay actuator save BTC head execute permission address
genesis="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
[exec.sub.manage]
#manage actuator super administrator address
superManager=[
    "1Bsg9j6gW83sShoee1fZAt9TkUjcrCgA9S", 
    "12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv", 
    "1Q8hGLfoGe63efeWa8fJ4Pnukhkngt6poK"
]