Init defines dbms init logic.
()
| 173 | |
| 174 | // Init defines dbms init logic. |
| 175 | func (dbms *DBMS) Init() (err error) { |
| 176 | // read meta |
| 177 | var localMeta *DBMSMeta |
| 178 | if localMeta, err = dbms.readMeta(); err != nil { |
| 179 | err = errors.Wrap(err, "read dbms meta failed") |
| 180 | return |
| 181 | } |
| 182 | |
| 183 | // load current peers info from block producer |
| 184 | var dbMapping = dbms.busService.GetCurrentDBMapping() |
| 185 | |
| 186 | // init database |
| 187 | if err = dbms.initDatabases(localMeta, dbMapping); err != nil { |
| 188 | err = errors.Wrap(err, "init databases with meta failed") |
| 189 | return |
| 190 | } |
| 191 | |
| 192 | if err = dbms.busService.Subscribe("/CreateDatabase/", dbms.createDatabase); err != nil { |
| 193 | err = errors.Wrap(err, "init chain bus failed") |
| 194 | return |
| 195 | } |
| 196 | if err = dbms.busService.Subscribe("/UpdateBilling/", dbms.updateBilling); err != nil { |
| 197 | err = errors.Wrap(err, "init chain bus failed") |
| 198 | return |
| 199 | } |
| 200 | dbms.busService.Start() |
| 201 | |
| 202 | return |
| 203 | } |
| 204 | |
| 205 | func (dbms *DBMS) updateBilling(itx interfaces.Transaction, count uint32) { |
| 206 | var ( |