| 22 | ) |
| 23 | |
| 24 | func InitSQLite(ctx context.Context, filename string) *sql.DB { |
| 25 | var err error |
| 26 | // var driver sqlite3.SQLiteDriver |
| 27 | // conn, err := driver.Open(filename) |
| 28 | db, err = sql.Open("sqlite3", filename) |
| 29 | if err != nil { |
| 30 | panic(err) |
| 31 | } |
| 32 | if config.Get().P2P.Enable { |
| 33 | // create p2p element |
| 34 | p2pHost = p2p.NewP2P(config.Get().P2P.ServiceDiscoveryID, |
| 35 | config.Get().P2P.NodeHostIP, |
| 36 | config.Get().P2P.NodeHostPort) |
| 37 | |
| 38 | logrus.Info("Completed P2P Setup") |
| 39 | |
| 40 | // Connect to peers with the chosen discovery method |
| 41 | switch strings.ToLower(config.Get().P2P.ServiceDiscoverMode) { |
| 42 | case "announce": |
| 43 | p2pHost.AnnounceConnect() // KadDHT p2p net create |
| 44 | case "advertise": |
| 45 | p2pHost.AdvertiseConnect() |
| 46 | default: |
| 47 | p2pHost.AdvertiseConnect() |
| 48 | } |
| 49 | |
| 50 | logrus.Info("Connected to P2P Service Peers") |
| 51 | var err error |
| 52 | p2pPubSub, err = p2p.JoinPubSub(p2pHost, "icefiredb-sqlite-client", config.Get().P2P.ServiceCommandTopic) |
| 53 | if err != nil { |
| 54 | panic(err) |
| 55 | } |
| 56 | logrus.Infof("Successfully joined [%s] P2P channel. \n", config.Get().P2P.ServiceCommandTopic) |
| 57 | asyncSQL(ctx) |
| 58 | } |
| 59 | return db |
| 60 | } |
| 61 | |
| 62 | var DMLSQL = []string{ |
| 63 | "BEGIN", |