gitlab.com/SiaPrime/SiaPrime@v1.4.1/node/templates.go (about)

     1  package node
     2  
     3  // templates.go contains a bunch of sane default templates that you can use to
     4  // create Sia nodes.
     5  
     6  var (
     7  	// AllModulesTemplate is a template for a Sia node that has all modules
     8  	// enabled.
     9  	AllModulesTemplate = NodeParams{
    10  		CreateConsensusSet:    true,
    11  		CreateExplorer:        false, // TODO: Implement explorer.
    12  		CreateGateway:         true,
    13  		CreateHost:            true,
    14  		CreateMiner:           true,
    15  		CreateRenter:          true,
    16  		CreateTransactionPool: true,
    17  		CreateWallet:          true,
    18  	}
    19  	// GatewayTemplate is a template for a Sia node that has a functioning
    20  	// Gateway. The node has a Gateway but no other modules.
    21  	GatewayTemplate = NodeParams{
    22  		CreateConsensusSet:    false,
    23  		CreateExplorer:        false,
    24  		CreateGateway:         true,
    25  		CreateHost:            false,
    26  		CreateMiner:           false,
    27  		CreateRenter:          false,
    28  		CreateTransactionPool: false,
    29  		CreateWallet:          false,
    30  	}
    31  	// HostTemplate is a template for a Sia node that has a functioning host.
    32  	// The node has a host and all dependencies, but no other modules.
    33  	HostTemplate = NodeParams{
    34  		CreateConsensusSet:    true,
    35  		CreateExplorer:        false,
    36  		CreateGateway:         true,
    37  		CreateHost:            true,
    38  		CreateMiner:           false,
    39  		CreateRenter:          false,
    40  		CreateTransactionPool: true,
    41  		CreateWallet:          true,
    42  	}
    43  	// RenterTemplate is a template for a Sia node that has a functioning
    44  	// renter. The node has a renter and all dependencies, but no other
    45  	// modules.
    46  	RenterTemplate = NodeParams{
    47  		CreateConsensusSet:    true,
    48  		CreateExplorer:        false,
    49  		CreateGateway:         true,
    50  		CreateHost:            false,
    51  		CreateMiner:           false,
    52  		CreateRenter:          true,
    53  		CreateTransactionPool: true,
    54  		CreateWallet:          true,
    55  	}
    56  	// WalletTemplate is a template for a Sia node that has a functioning
    57  	// wallet. The node has a wallet and all dependencies, but no other
    58  	// modules.
    59  	WalletTemplate = NodeParams{
    60  		CreateConsensusSet:    true,
    61  		CreateExplorer:        false,
    62  		CreateGateway:         true,
    63  		CreateHost:            false,
    64  		CreateMiner:           false,
    65  		CreateRenter:          false,
    66  		CreateTransactionPool: true,
    67  		CreateWallet:          true,
    68  	}
    69  )
    70  
    71  // AllModules returns an AllModulesTemplate filled out with the provided dir.
    72  func AllModules(dir string) NodeParams {
    73  	template := AllModulesTemplate
    74  	template.Dir = dir
    75  	return template
    76  }
    77  
    78  // Gateway returns a GatewayTemplate filled out with the provided dir.
    79  func Gateway(dir string) NodeParams {
    80  	template := GatewayTemplate
    81  	template.Dir = dir
    82  	return template
    83  }
    84  
    85  // Host returns a HostTemplate filled out with the provided dir.
    86  func Host(dir string) NodeParams {
    87  	template := HostTemplate
    88  	template.Dir = dir
    89  	return template
    90  }
    91  
    92  // Renter returns a RenterTemplate filled out with the provided dir.
    93  func Renter(dir string) NodeParams {
    94  	template := RenterTemplate
    95  	template.Dir = dir
    96  	return template
    97  }
    98  
    99  // Wallet returns a WalletTemplate filled out with the provided dir.
   100  func Wallet(dir string) NodeParams {
   101  	template := WalletTemplate
   102  	template.Dir = dir
   103  	return template
   104  }