made mist in a compilable, workable state using the new refactored packages
This commit is contained in:
		
							parent
							
								
									c7bc684909
								
							
						
					
					
						commit
						56dac74f71
					
				| @ -36,10 +36,12 @@ var ( | ||||
| 	Identifier      string | ||||
| 	KeyRing         string | ||||
| 	KeyStore        string | ||||
| 	PMPGateway      string | ||||
| 	StartRpc        bool | ||||
| 	StartWebSockets bool | ||||
| 	RpcPort         int | ||||
| 	UseUPnP         bool | ||||
| 	NatType         string | ||||
| 	OutboundPort    string | ||||
| 	ShowGenesis     bool | ||||
| 	AddPeer         string | ||||
| @ -111,10 +113,12 @@ func Init() { | ||||
| 	flag.BoolVar(&NonInteractive, "y", false, "non-interactive mode (say yes to confirmations)") | ||||
| 	flag.BoolVar(&UseSeed, "seed", true, "seed peers") | ||||
| 	flag.BoolVar(&GenAddr, "genaddr", false, "create a new priv/pub key") | ||||
| 	flag.StringVar(&NatType, "nat", "", "NAT support (UPNP|PMP) (none)") | ||||
| 	flag.StringVar(&SecretFile, "import", "", "imports the file given (hex or mnemonic formats)") | ||||
| 	flag.StringVar(&ExportDir, "export", "", "exports the session keyring to files in the directory given") | ||||
| 	flag.StringVar(&LogFile, "logfile", "", "log file (defaults to standard output)") | ||||
| 	flag.StringVar(&Datadir, "datadir", defaultDataDir(), "specifies the datadir to use") | ||||
| 	flag.StringVar(&PMPGateway, "pmp", "", "Gateway IP for PMP") | ||||
| 	flag.StringVar(&ConfigFile, "conf", defaultConfigFile, "config file") | ||||
| 	flag.StringVar(&DebugFile, "debug", "", "debug file (no debugging if not set)") | ||||
| 	flag.IntVar(&LogLevel, "loglevel", int(logger.InfoLevel), "loglevel: 0-5: silent,error,warn,info,debug,debug detail)") | ||||
|  | ||||
| @ -30,14 +30,14 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"github.com/ethereum/go-ethereum" | ||||
| 	"github.com/ethereum/go-ethereum/core" | ||||
| 	"github.com/ethereum/go-ethereum/core/types" | ||||
| 	"github.com/ethereum/go-ethereum/eth" | ||||
| 	"github.com/ethereum/go-ethereum/ethdb" | ||||
| 	"github.com/ethereum/go-ethereum/ethutil" | ||||
| 	"github.com/ethereum/go-ethereum/logger" | ||||
| 	"github.com/ethereum/go-ethereum/miner" | ||||
| 	"github.com/ethereum/go-ethereum/wire" | ||||
| 	"github.com/ethereum/go-ethereum/p2p" | ||||
| 	"github.com/ethereum/go-ethereum/xeth" | ||||
| 	"gopkg.in/qml.v1" | ||||
| ) | ||||
| @ -97,7 +97,7 @@ type Gui struct { | ||||
| 	pipe *xeth.JSXEth | ||||
| 
 | ||||
| 	Session        string | ||||
| 	clientIdentity *wire.SimpleClientIdentity | ||||
| 	clientIdentity *p2p.SimpleClientIdentity | ||||
| 	config         *ethutil.ConfigManager | ||||
| 
 | ||||
| 	plugins map[string]plugin | ||||
| @ -107,7 +107,7 @@ type Gui struct { | ||||
| } | ||||
| 
 | ||||
| // Create GUI, but doesn't start it
 | ||||
| func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, clientIdentity *wire.SimpleClientIdentity, session string, logLevel int) *Gui { | ||||
| func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, clientIdentity *p2p.SimpleClientIdentity, session string, logLevel int) *Gui { | ||||
| 	db, err := ethdb.NewLDBDatabase("tx_database") | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| @ -409,8 +409,7 @@ func (gui *Gui) update() { | ||||
| 	miningLabel := gui.getObjectByName("miningLabel") | ||||
| 
 | ||||
| 	events := gui.eth.EventMux().Subscribe( | ||||
| 		eth.ChainSyncEvent{}, | ||||
| 		eth.PeerListEvent{}, | ||||
| 		//eth.PeerListEvent{},
 | ||||
| 		core.NewBlockEvent{}, | ||||
| 		core.TxPreEvent{}, | ||||
| 		core.TxPostEvent{}, | ||||
| @ -460,9 +459,6 @@ func (gui *Gui) update() { | ||||
| 
 | ||||
| 					gui.setWalletValue(object.Balance(), nil) | ||||
| 					state.UpdateStateObject(object) | ||||
| 
 | ||||
| 				case eth.PeerListEvent: | ||||
| 					gui.setPeerInfo() | ||||
| 				} | ||||
| 
 | ||||
| 			case <-peerUpdateTicker.C: | ||||
| @ -472,16 +468,18 @@ func (gui *Gui) update() { | ||||
| 				lastBlockLabel.Set("text", statusText) | ||||
| 				miningLabel.Set("text", "Mining @ "+strconv.FormatInt(gui.uiLib.miner.GetPow().GetHashrate(), 10)+"Khash") | ||||
| 
 | ||||
| 				blockLength := gui.eth.BlockPool().BlocksProcessed | ||||
| 				chainLength := gui.eth.BlockPool().ChainLength | ||||
| 				/* | ||||
| 					blockLength := gui.eth.BlockPool().BlocksProcessed | ||||
| 					chainLength := gui.eth.BlockPool().ChainLength | ||||
| 
 | ||||
| 				var ( | ||||
| 					pct      float64 = 1.0 / float64(chainLength) * float64(blockLength) | ||||
| 					dlWidget         = gui.win.Root().ObjectByName("downloadIndicator") | ||||
| 					dlLabel          = gui.win.Root().ObjectByName("downloadLabel") | ||||
| 				) | ||||
| 				dlWidget.Set("value", pct) | ||||
| 				dlLabel.Set("text", fmt.Sprintf("%d / %d", blockLength, chainLength)) | ||||
| 					var ( | ||||
| 						pct      float64 = 1.0 / float64(chainLength) * float64(blockLength) | ||||
| 						dlWidget         = gui.win.Root().ObjectByName("downloadIndicator") | ||||
| 						dlLabel          = gui.win.Root().ObjectByName("downloadLabel") | ||||
| 					) | ||||
| 					dlWidget.Set("value", pct) | ||||
| 					dlLabel.Set("text", fmt.Sprintf("%d / %d", blockLength, chainLength)) | ||||
| 				*/ | ||||
| 
 | ||||
| 			case <-statsUpdateTicker.C: | ||||
| 				gui.setStatsPane() | ||||
| @ -509,7 +507,7 @@ Heap Alloc: %d | ||||
| CGNext:     %x | ||||
| NumGC:      %d | ||||
| `, Version, runtime.Version(), | ||||
| 		eth.ProtocolVersion, eth.P2PVersion, | ||||
| 		eth.ProtocolVersion, 2, | ||||
| 		runtime.NumCPU, runtime.NumGoroutine(), runtime.NumCgoCall(), | ||||
| 		memStats.Alloc, memStats.HeapAlloc, | ||||
| 		memStats.NextGC, memStats.NumGC, | ||||
|  | ||||
| @ -23,8 +23,8 @@ import ( | ||||
| 	"runtime" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"github.com/ethereum/go-ethereum" | ||||
| 	"github.com/ethereum/go-ethereum/cmd/utils" | ||||
| 	"github.com/ethereum/go-ethereum/eth" | ||||
| 	"github.com/ethereum/go-ethereum/logger" | ||||
| 	"gopkg.in/qml.v1" | ||||
| ) | ||||
| @ -58,8 +58,8 @@ func run() error { | ||||
| 
 | ||||
| 	// create, import, export keys
 | ||||
| 	utils.KeyTasks(keyManager, KeyRing, GenAddr, SecretFile, ExportDir, NonInteractive) | ||||
| 	clientIdentity := utils.NewClientIdentity(ClientIdentifier, Version, Identifier) | ||||
| 	ethereum = utils.NewEthereum(db, clientIdentity, keyManager, UseUPnP, OutboundPort, MaxPeer) | ||||
| 	clientIdentity := utils.NewClientIdentity(ClientIdentifier, Version, Identifier, string(keyManager.PublicKey())) | ||||
| 	ethereum := utils.NewEthereum(db, clientIdentity, keyManager, utils.NatType(NatType, PMPGateway), OutboundPort, MaxPeer) | ||||
| 
 | ||||
| 	if ShowGenesis { | ||||
| 		utils.ShowGenesis(ethereum) | ||||
|  | ||||
| @ -27,7 +27,9 @@ import ( | ||||
| 	"github.com/ethereum/go-ethereum/core" | ||||
| 	"github.com/ethereum/go-ethereum/core/types" | ||||
| 	"github.com/ethereum/go-ethereum/crypto" | ||||
| 	"github.com/ethereum/go-ethereum/eth" | ||||
| 	"github.com/ethereum/go-ethereum/ethutil" | ||||
| 	"github.com/ethereum/go-ethereum/event/filter" | ||||
| 	"github.com/ethereum/go-ethereum/javascript" | ||||
| 	"github.com/ethereum/go-ethereum/miner" | ||||
| 	"github.com/ethereum/go-ethereum/state" | ||||
| @ -56,6 +58,7 @@ type UiLib struct { | ||||
| 	jsEngine *javascript.JSRE | ||||
| 
 | ||||
| 	filterCallbacks map[int][]int | ||||
| 	filterManager   *filter.FilterManager | ||||
| 
 | ||||
| 	miner *miner.Miner | ||||
| } | ||||
| @ -63,7 +66,7 @@ type UiLib struct { | ||||
| func NewUiLib(engine *qml.Engine, eth *eth.Ethereum, assetPath string) *UiLib { | ||||
| 	lib := &UiLib{JSXEth: xeth.NewJSXEth(eth), engine: engine, eth: eth, assetPath: assetPath, jsEngine: javascript.NewJSRE(eth), filterCallbacks: make(map[int][]int)} //, filters: make(map[int]*xeth.JSFilter)}
 | ||||
| 	lib.miner = miner.New(eth.KeyManager().Address(), eth) | ||||
| 	//eth.filterManager = filter.NewFilterManager(eth.EventMux())
 | ||||
| 	lib.filterManager = filter.NewFilterManager(eth.EventMux()) | ||||
| 
 | ||||
| 	return lib | ||||
| } | ||||
| @ -123,7 +126,8 @@ func (self *UiLib) LookupAddress(name string) string { | ||||
| } | ||||
| 
 | ||||
| func (self *UiLib) PastPeers() *ethutil.List { | ||||
| 	return ethutil.NewList(eth.PastPeers()) | ||||
| 	return ethutil.NewList([]string{}) | ||||
| 	//return ethutil.NewList(eth.PastPeers())
 | ||||
| } | ||||
| 
 | ||||
| func (self *UiLib) ImportTx(rlpTx string) { | ||||
| @ -191,7 +195,7 @@ func (ui *UiLib) Connect(button qml.Object) { | ||||
| } | ||||
| 
 | ||||
| func (ui *UiLib) ConnectToPeer(addr string) { | ||||
| 	ui.eth.ConnectToPeer(addr) | ||||
| 	ui.eth.SuggestPeer(addr) | ||||
| } | ||||
| 
 | ||||
| func (ui *UiLib) AssetPath(p string) string { | ||||
| @ -226,7 +230,7 @@ func (self *UiLib) NewFilter(object map[string]interface{}) (id int) { | ||||
| 	filter.MessageCallback = func(messages state.Messages) { | ||||
| 		self.win.Root().Call("invokeFilterCallback", xeth.ToJSMessages(messages), id) | ||||
| 	} | ||||
| 	id = self.eth.InstallFilter(filter) | ||||
| 	id = self.filterManager.InstallFilter(filter) | ||||
| 	return id | ||||
| } | ||||
| 
 | ||||
| @ -239,12 +243,12 @@ func (self *UiLib) NewFilterString(typ string) (id int) { | ||||
| 			fmt.Println("QML is lagging") | ||||
| 		} | ||||
| 	} | ||||
| 	id = self.eth.InstallFilter(filter) | ||||
| 	id = self.filterManager.InstallFilter(filter) | ||||
| 	return id | ||||
| } | ||||
| 
 | ||||
| func (self *UiLib) Messages(id int) *ethutil.List { | ||||
| 	filter := self.eth.GetFilter(id) | ||||
| 	filter := self.filterManager.GetFilter(id) | ||||
| 	if filter != nil { | ||||
| 		messages := xeth.ToJSMessages(filter.Find()) | ||||
| 
 | ||||
| @ -255,7 +259,7 @@ func (self *UiLib) Messages(id int) *ethutil.List { | ||||
| } | ||||
| 
 | ||||
| func (self *UiLib) UninstallFilter(id int) { | ||||
| 	self.eth.UninstallFilter(id) | ||||
| 	self.filterManager.UninstallFilter(id) | ||||
| } | ||||
| 
 | ||||
| func mapToTxParams(object map[string]interface{}) map[string]string { | ||||
|  | ||||
| @ -147,6 +147,10 @@ func (s *Ethereum) Peers() []*p2p.Peer { | ||||
| 	return s.server.Peers() | ||||
| } | ||||
| 
 | ||||
| func (s *Ethereum) MaxPeers() int { | ||||
| 	return s.server.MaxPeers | ||||
| } | ||||
| 
 | ||||
| // Start the ethereum
 | ||||
| func (s *Ethereum) Start(seed bool) error { | ||||
| 	err := s.server.Start() | ||||
|  | ||||
							
								
								
									
										23
									
								
								eth/peer_util.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								eth/peer_util.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | ||||
| package eth | ||||
| 
 | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 
 | ||||
| 	"github.com/ethereum/go-ethereum/ethutil" | ||||
| ) | ||||
| 
 | ||||
| func WritePeers(path string, addresses []string) { | ||||
| 	if len(addresses) > 0 { | ||||
| 		data, _ := json.MarshalIndent(addresses, "", "    ") | ||||
| 		ethutil.WriteFile(path, data) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func ReadPeers(path string) (ips []string, err error) { | ||||
| 	var data string | ||||
| 	data, err = ethutil.ReadAllFile(path) | ||||
| 	if err != nil { | ||||
| 		json.Unmarshal([]byte(data), &ips) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| @ -416,6 +416,7 @@ func (srv *Server) verifyPeer(addr *peerAddr) error { | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // TODO replace with "Set"
 | ||||
| type Blacklist interface { | ||||
| 	Get([]byte) (bool, error) | ||||
| 	Put([]byte) error | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user