Clean up and util methods
This commit is contained in:
		
							parent
							
								
									92ffc1cc4c
								
							
						
					
					
						commit
						41bd38147c
					
				| @ -3,13 +3,14 @@ package ethchain | |||||||
| import ( | import ( | ||||||
| 	"bytes" | 	"bytes" | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | 	"math/big" | ||||||
|  | 	_ "strconv" | ||||||
|  | 	"time" | ||||||
|  | 
 | ||||||
| 	"github.com/ethereum/eth-go/ethcrypto" | 	"github.com/ethereum/eth-go/ethcrypto" | ||||||
| 	"github.com/ethereum/eth-go/ethstate" | 	"github.com/ethereum/eth-go/ethstate" | ||||||
| 	"github.com/ethereum/eth-go/ethtrie" | 	"github.com/ethereum/eth-go/ethtrie" | ||||||
| 	"github.com/ethereum/eth-go/ethutil" | 	"github.com/ethereum/eth-go/ethutil" | ||||||
| 	"math/big" |  | ||||||
| 	_ "strconv" |  | ||||||
| 	"time" |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type BlockInfo struct { | type BlockInfo struct { | ||||||
| @ -63,12 +64,6 @@ type Block struct { | |||||||
| 	TxSha        []byte | 	TxSha        []byte | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // New block takes a raw encoded string
 |  | ||||||
| // XXX DEPRICATED
 |  | ||||||
| func NewBlockFromData(raw []byte) *Block { |  | ||||||
| 	return NewBlockFromBytes(raw) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func NewBlockFromBytes(raw []byte) *Block { | func NewBlockFromBytes(raw []byte) *Block { | ||||||
| 	block := &Block{} | 	block := &Block{} | ||||||
| 	block.RlpDecode(raw) | 	block.RlpDecode(raw) | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								ethereum.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								ethereum.go
									
									
									
									
									
								
							| @ -3,12 +3,6 @@ package eth | |||||||
| import ( | import ( | ||||||
| 	"container/list" | 	"container/list" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"github.com/ethereum/eth-go/ethchain" |  | ||||||
| 	"github.com/ethereum/eth-go/ethcrypto" |  | ||||||
| 	"github.com/ethereum/eth-go/ethlog" |  | ||||||
| 	"github.com/ethereum/eth-go/ethrpc" |  | ||||||
| 	"github.com/ethereum/eth-go/ethutil" |  | ||||||
| 	"github.com/ethereum/eth-go/ethwire" |  | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	"math/rand" | 	"math/rand" | ||||||
| 	"net" | 	"net" | ||||||
| @ -18,6 +12,13 @@ import ( | |||||||
| 	"sync" | 	"sync" | ||||||
| 	"sync/atomic" | 	"sync/atomic" | ||||||
| 	"time" | 	"time" | ||||||
|  | 
 | ||||||
|  | 	"github.com/ethereum/eth-go/ethchain" | ||||||
|  | 	"github.com/ethereum/eth-go/ethcrypto" | ||||||
|  | 	"github.com/ethereum/eth-go/ethlog" | ||||||
|  | 	"github.com/ethereum/eth-go/ethrpc" | ||||||
|  | 	"github.com/ethereum/eth-go/ethutil" | ||||||
|  | 	"github.com/ethereum/eth-go/ethwire" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| const seedTextFileUri string = "http://www.ethereum.org/servers.poc3.txt" | const seedTextFileUri string = "http://www.ethereum.org/servers.poc3.txt" | ||||||
|  | |||||||
| @ -98,6 +98,7 @@ func Bytes2Hex(d []byte) string { | |||||||
| 
 | 
 | ||||||
| func Hex2Bytes(str string) []byte { | func Hex2Bytes(str string) []byte { | ||||||
| 	h, _ := hex.DecodeString(str) | 	h, _ := hex.DecodeString(str) | ||||||
|  | 
 | ||||||
| 	return h | 	return h | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3,8 +3,9 @@ package ethutil | |||||||
| import ( | import ( | ||||||
| 	"flag" | 	"flag" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"github.com/rakyll/globalconf" |  | ||||||
| 	"os" | 	"os" | ||||||
|  | 
 | ||||||
|  | 	"github.com/rakyll/globalconf" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Config struct
 | // Config struct
 | ||||||
| @ -28,8 +29,7 @@ var Config *ConfigManager | |||||||
| func ReadConfig(ConfigFile string, Datadir string, EnvPrefix string) *ConfigManager { | func ReadConfig(ConfigFile string, Datadir string, EnvPrefix string) *ConfigManager { | ||||||
| 	if Config == nil { | 	if Config == nil { | ||||||
| 		// create ConfigFile if does not exist, otherwise globalconf panic when trying to persist flags
 | 		// create ConfigFile if does not exist, otherwise globalconf panic when trying to persist flags
 | ||||||
| 		_, err := os.Stat(ConfigFile) | 		if !FileExist(ConfigFile) { | ||||||
| 		if err != nil && os.IsNotExist(err) { |  | ||||||
| 			fmt.Printf("config file '%s' doesn't exist, creating it\n", ConfigFile) | 			fmt.Printf("config file '%s' doesn't exist, creating it\n", ConfigFile) | ||||||
| 			os.Create(ConfigFile) | 			os.Create(ConfigFile) | ||||||
| 		} | 		} | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| package ethutil | package ethutil | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"io/ioutil" | ||||||
|  | 	"os" | ||||||
| 	"os/user" | 	"os/user" | ||||||
| 	"strings" | 	"strings" | ||||||
| ) | ) | ||||||
| @ -18,3 +20,41 @@ func ExpandHomePath(p string) (path string) { | |||||||
| 
 | 
 | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func FileExist(filePath string) bool { | ||||||
|  | 	_, err := os.Stat(filePath) | ||||||
|  | 	if err != nil && os.IsNotExist(err) { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return true | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func ReadAllFile(filePath string) (string, error) { | ||||||
|  | 	file, err := os.Open(filePath) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	data, err := ioutil.ReadAll(file) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return string(data), nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func WriteFile(filePath string, content []byte) error { | ||||||
|  | 	fh, err := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, os.ModePerm) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	defer fh.Close() | ||||||
|  | 
 | ||||||
|  | 	_, err = fh.Write(content) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | |||||||
| @ -2,11 +2,12 @@ package ethvm | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
|  | 	"math" | ||||||
|  | 	"math/big" | ||||||
|  | 
 | ||||||
| 	"github.com/ethereum/eth-go/ethcrypto" | 	"github.com/ethereum/eth-go/ethcrypto" | ||||||
| 	"github.com/ethereum/eth-go/ethstate" | 	"github.com/ethereum/eth-go/ethstate" | ||||||
| 	"github.com/ethereum/eth-go/ethutil" | 	"github.com/ethereum/eth-go/ethutil" | ||||||
| 	"math" |  | ||||||
| 	"math/big" |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| type Debugger interface { | type Debugger interface { | ||||||
|  | |||||||
							
								
								
									
										15
									
								
								peer.go
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								peer.go
									
									
									
									
									
								
							| @ -4,15 +4,16 @@ import ( | |||||||
| 	"bytes" | 	"bytes" | ||||||
| 	"container/list" | 	"container/list" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"github.com/ethereum/eth-go/ethchain" |  | ||||||
| 	"github.com/ethereum/eth-go/ethlog" |  | ||||||
| 	"github.com/ethereum/eth-go/ethutil" |  | ||||||
| 	"github.com/ethereum/eth-go/ethwire" |  | ||||||
| 	"net" | 	"net" | ||||||
| 	"strconv" | 	"strconv" | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"sync/atomic" | 	"sync/atomic" | ||||||
| 	"time" | 	"time" | ||||||
|  | 
 | ||||||
|  | 	"github.com/ethereum/eth-go/ethchain" | ||||||
|  | 	"github.com/ethereum/eth-go/ethlog" | ||||||
|  | 	"github.com/ethereum/eth-go/ethutil" | ||||||
|  | 	"github.com/ethereum/eth-go/ethwire" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var peerlogger = ethlog.NewLogger("PEER") | var peerlogger = ethlog.NewLogger("PEER") | ||||||
| @ -197,10 +198,12 @@ func NewOutboundPeer(addr string, ethereum *Ethereum, caps Caps) *Peer { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *Peer) Connect(addr string) (conn net.Conn, err error) { | func (self *Peer) Connect(addr string) (conn net.Conn, err error) { | ||||||
| 	for attempts := 0; attempts < 5; attempts++ { | 	const maxTries = 3 | ||||||
|  | 	for attempts := 0; attempts < maxTries; attempts++ { | ||||||
| 		conn, err = net.DialTimeout("tcp", addr, 10*time.Second) | 		conn, err = net.DialTimeout("tcp", addr, 10*time.Second) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			peerlogger.Debugf("Peer connection failed. Retrying (%d/5)\n", attempts+1) | 			//peerlogger.Debugf("Peer connection failed. Retrying (%d/%d) (%s)\n", attempts+1, maxTries, addr)
 | ||||||
|  | 			time.Sleep(time.Duration(attempts*20) * time.Second) | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user