1.8.117 • Published 3 years ago

@gapi/orbitdb v1.8.117

Weekly downloads
414
License
MIT
Repository
github
Last release
3 years ago

@Gapi OrbitDb decentralized database Module (Beta)

More information about OrbitDb can be found here OrbitDb
For questions/issues you can write ticket here
This module is intended to be used with GAPI

Installation and basic examples:

To install this Gapi module, run:
$ npm install @gapi/orbitdb --save

Beta Decentralized module using @rxdi infrastructure

To install @orbitdb from ipfs network install globally @rxdi/core npm i @rxdi/core

Check it inside ipfs network: QmWxi1tiVRJfVCTkFD9upaeQoPgG4NzbagxyA1RQCt3X3P

$ rxdi i QmWxi1tiVRJfVCTkFD9upaeQoPgG4NzbagxyA1RQCt3X3P

Important:

  • Decentralized module includes property packages: [] if it depends on some "centralized" source
  • rxdi install will trigger npm install after finish if there are any packages: [] inside array so you don't have to install
  • In this case we will install @gapi/ipfs@1.2.55 and orbit-db@0.19.8 since it is the working version nothing less nothing more! ;)
  • Later @gapi/ipfs will be also decentralized module and will be added as a dependency like @rxdi/core
{
    "name": "@gapi/orbitdb",
    "version":"1.4.8",
    "typings": "QmVXzhhjQCoNZJLwYWwtxLYtAC1x1No8yrZcE9d3unaXnQ",
    "module": "QmUEqSRJvn44ThooeizVT8Tp7moW188hX4sBDgV3hN2khc",
    "dependencies": [
        "QmP9n7m1UWkFn2hqt7mnfQYnBtxmFyyvKZHN7hgngQb1gM"
    ],
    "packages": [
        {
            "name": "orbit-db",
            "version": "0.19.8"
        },
        {
            "name": "@gapi/ipfs",
            "version": "1.4.7"
        }
    ]
}

Consuming @gapi/orbitdb

Important: if you install from decentralized source via rxdi i command you don't need to install @gapi/ipfs module!

To work everything as expected we need to install @gapi/ipfs module because OrbitDB is working with ipfs protocol to install it type:
npm i @gapi/ipfs
Important part is that Ipfs module should be resolved before OrbitDb module to work properly
Then import your module above OrbitDbModule the following way:
Import inside AppModule or CoreModule
import { Module } from '@rxdi/core';
import { IpfsModule } from '@gapi/ipfs';
import { OrbitDbModule } from '@gapi/orbitdb';

@Module({
    imports: [
        IpfsModule.forRoot({
            start: true,
            config: {
                Addresses: {
                    API: '/ip4/127.0.0.1/tcp/5002',
                    Announce: [],
                    Gateway: '/ip4/127.0.0.1/tcp/8081',
                    NoAnnounce: [],
                    Swarm: [
                        '/ip4/0.0.0.0/tcp/4002',
                        '/ip6/::/tcp/4002'
                    ]
                },
            },
            logging: true,
        }),
        OrbitDbModule
    ]
})
export class CoreModule { }
Interact with orbitdb

note: keep in mind that this is beta testing and contribution is appreciated ! :)

import { Inject, Service } from '@rxdi/core';
import { IPFS_NODE_READY } from '@gapi/ipfs';
import { OrbitDb } from '@gapi/orbitdb';
import { Subject } from 'rxjs/Subject';
import { Observable } from 'rxjs/Observable';

export class User {
    id: number;
    name: string;
    email: string;
};

@Service()
export class OrbitService {
    constructor(
        @Inject(OrbitDb) private orbitdb: OrbitDb,
    ) {}

    async orbitTest() {
        
        const db = await this.orbitdb.log<User>('hello');
        await db.load();

        // Listen for updates from peers
        db.events.on('replicated', (address) => {
            console.log(db.iterator({ limit: -1 }).collect());
        });

        // Add an entry

        const hash = await db.add({ id: 1, name: 'Kristiyan Tachev', email: 'kristiqn.tachev@gmail.com' });
        console.log(hash);

        // Query
        const result = db.iterator({ limit: -1 }).collect();

        console.log(result[result.length - 1].payload.value.id);
        // 1

        console.log(result[result.length - 1].payload.value.name);
        // Kristiyan Tachev

        console.log(result[result.length - 1].payload.value.email);
        // kristiqn.tachev@gmail.com
        return await Promise.resolve();
    }

}

Or you can do more if you inject database as a Service

import { Module } from '@rxdi/core';
import { IpfsModule } from '@gapi/ipfs';
import { OrbitDbModule } from '@gapi/orbitdb';
import { OrbitDb } from '@gapi/orbitdb';

interface User {
    id: string;
}

@Module({
    imports: [
        IpfsModule.forRoot({
            start: true,
            config: {
                Addresses: {
                    API: '/ip4/127.0.0.1/tcp/5002',
                    Announce: [],
                    Gateway: '/ip4/127.0.0.1/tcp/8081',
                    NoAnnounce: [],
                    Swarm: [
                        '/ip4/0.0.0.0/tcp/4002',
                        '/ip6/::/tcp/4002'
                    ]
                },
            },
            logging: true,
        }),
        OrbitDbModule
    ],
    services: [
        {
            provide: 'hello',
            deps: [OrbitDb],
            useFactory: async (orbitdb: OrbitDb) => await (await orbitdb.log<User>('hello')).load()
        }
    ]
})
export class CoreModule { }

Then inject database inside whole application the following way:

import { Service, Inject } from '@rxdi/core';
import { OrbitDb } from '@gapi/orbitdb';

interface User {
    id: string;
}

@Service()
export class OrbitService {
    constructor(
        @Inject('hello') private helloDB: OrbitLogDatabaseInstance<User>,
    ) {}

}

TODO: Better documentation...

Enjoy ! :)

1.8.117

3 years ago

1.8.116

3 years ago

1.8.114

3 years ago

1.8.115

3 years ago

1.8.113

3 years ago

1.8.108

3 years ago

1.8.109

3 years ago

1.8.110

3 years ago

1.8.111

3 years ago

1.8.112

3 years ago

1.8.107

3 years ago

1.8.106

3 years ago

1.8.104

3 years ago

1.8.105

3 years ago

1.8.103

3 years ago

1.8.102

3 years ago

1.8.101

3 years ago

1.8.100

3 years ago

1.8.99

3 years ago

1.8.98

3 years ago

1.8.97

3 years ago

1.8.96

3 years ago

1.8.95

3 years ago

1.8.94

3 years ago

1.8.93

3 years ago

1.8.92

3 years ago

1.8.91

3 years ago

1.8.90

3 years ago

1.8.89

3 years ago

1.8.88

3 years ago

1.8.85

4 years ago

1.8.86

4 years ago

1.8.87

4 years ago

1.8.84

4 years ago

1.8.83

4 years ago

1.8.82

4 years ago

1.8.81

4 years ago

1.8.80

4 years ago

1.8.79

4 years ago

1.8.77

4 years ago

1.8.78

4 years ago

1.8.76

4 years ago

1.8.75

4 years ago

1.8.73

4 years ago

1.8.74

4 years ago

1.8.72

4 years ago

1.8.71

4 years ago

1.8.70

4 years ago

1.8.69

4 years ago

1.8.65

4 years ago

1.8.66

4 years ago

1.8.67

4 years ago

1.8.68

4 years ago

1.8.62

4 years ago

1.8.63

4 years ago

1.8.64

4 years ago

1.8.61

4 years ago

1.8.60

4 years ago

1.8.58

4 years ago

1.8.59

4 years ago

1.8.56

4 years ago

1.8.57

4 years ago

1.8.54

4 years ago

1.8.55

4 years ago

1.8.53

4 years ago

1.8.52

4 years ago

1.8.50

4 years ago

1.8.51

4 years ago

1.8.49

4 years ago

1.8.47

4 years ago

1.8.48

4 years ago

1.8.43

4 years ago

1.8.44

4 years ago

1.8.45

4 years ago

1.8.46

4 years ago

1.8.41

4 years ago

1.8.42

4 years ago

1.8.40

4 years ago

1.8.39

4 years ago

1.8.37

4 years ago

1.8.38

4 years ago

1.8.36

4 years ago

1.8.35

4 years ago

1.8.34

4 years ago

1.8.32

4 years ago

1.8.33

4 years ago

1.8.29

4 years ago

1.8.30

4 years ago

1.8.31

4 years ago

1.8.22

4 years ago

1.8.23

4 years ago

1.8.21

4 years ago

1.8.20

4 years ago

1.8.19

4 years ago

1.8.18

4 years ago

1.8.17

5 years ago

1.8.16

5 years ago

1.8.15

5 years ago

1.8.14

5 years ago

1.8.13

5 years ago

1.8.12

5 years ago

1.8.11

5 years ago

1.8.10

5 years ago

1.8.9

5 years ago

1.8.8

5 years ago

1.8.7

5 years ago

1.8.6

5 years ago

1.8.5

5 years ago

1.8.4

5 years ago

1.8.3

5 years ago

1.8.2

5 years ago

1.8.1

5 years ago

1.8.0

5 years ago

1.7.8

5 years ago

1.7.7

5 years ago

1.7.6

5 years ago

1.7.5

5 years ago

1.7.4

5 years ago

1.7.3

5 years ago

1.7.2

5 years ago

1.7.1

5 years ago

1.7.0

5 years ago

1.6.33

5 years ago

1.6.32

5 years ago

1.6.31

5 years ago

1.6.30

5 years ago

1.6.29

5 years ago

1.6.28

5 years ago

1.6.27

5 years ago

1.6.26

5 years ago

1.6.25

5 years ago

1.6.24

5 years ago

1.6.23

5 years ago

1.6.22

5 years ago

1.6.21

5 years ago

1.6.20

5 years ago

1.6.19

5 years ago

1.6.18

5 years ago

1.6.17

5 years ago

1.6.16

5 years ago

1.6.15

5 years ago

1.6.14

5 years ago

1.6.13

5 years ago

1.6.12

5 years ago

1.6.11

5 years ago

1.6.10

5 years ago

1.6.9

5 years ago

1.6.8

5 years ago

1.6.7

5 years ago

1.6.6

5 years ago

1.6.5

5 years ago

1.6.4

5 years ago

1.6.3

5 years ago

1.6.2

5 years ago

1.6.1

5 years ago

1.6.0

5 years ago

1.5.39

5 years ago

1.5.38

5 years ago

1.5.37

5 years ago

1.5.36

5 years ago

1.5.35

5 years ago

1.5.34

5 years ago

1.5.33

5 years ago

1.5.32

5 years ago

1.5.31

5 years ago

1.5.30

5 years ago

1.5.29

5 years ago

1.5.28

5 years ago

1.5.27

5 years ago

1.5.26

5 years ago

1.5.25

5 years ago

1.5.24

5 years ago

1.5.23

5 years ago

1.5.22

5 years ago

1.5.21

5 years ago

1.5.20

5 years ago

1.5.19

5 years ago

1.5.18

5 years ago

1.5.17

5 years ago

1.5.16

5 years ago

1.5.15

5 years ago

1.5.14

5 years ago

1.5.13

5 years ago

1.5.12

5 years ago

1.5.11

5 years ago

1.5.10

5 years ago

1.5.9

5 years ago

1.5.8

5 years ago

1.5.7

5 years ago

1.5.6

5 years ago

1.5.5

5 years ago

1.5.4

5 years ago

1.5.3

5 years ago

1.5.2

5 years ago

1.5.1

5 years ago

1.5.0

5 years ago

1.4.94

5 years ago

1.4.93

5 years ago

1.4.92

5 years ago

1.4.91

5 years ago

1.4.90

5 years ago

1.4.89

5 years ago

1.4.88

5 years ago

1.4.87

5 years ago

1.4.86

5 years ago

1.4.85

5 years ago

1.4.84

5 years ago

1.4.83

5 years ago

1.4.82

5 years ago

1.4.81

5 years ago

1.4.80

5 years ago

1.4.79

5 years ago

1.4.78

5 years ago

1.4.77

5 years ago

1.4.76

5 years ago

1.4.75

5 years ago

1.4.74

5 years ago

1.4.73

5 years ago

1.4.72

5 years ago

1.4.71

5 years ago

1.4.70

5 years ago

1.4.69

5 years ago

1.4.68

5 years ago

1.4.67

5 years ago

1.4.66

5 years ago

1.4.65

5 years ago

1.4.64

5 years ago

1.4.63

5 years ago

1.4.62

5 years ago

1.4.61

5 years ago

1.4.60

5 years ago

1.4.59

5 years ago

1.4.58

5 years ago

1.4.57

5 years ago

1.4.56

5 years ago

1.4.55

5 years ago

1.4.54

5 years ago

1.4.53

5 years ago

1.4.52

5 years ago

1.4.51

5 years ago

1.4.50

5 years ago

1.4.49

5 years ago

1.4.48

5 years ago

1.4.47

5 years ago

1.4.46

5 years ago

1.4.45

5 years ago

1.4.44

5 years ago

1.4.43

5 years ago

1.4.41

5 years ago

1.4.40

5 years ago

1.4.39

5 years ago

1.4.38

5 years ago

1.4.37

5 years ago

1.4.36

5 years ago

1.4.35

5 years ago

1.4.34

5 years ago

1.4.33

5 years ago

1.4.32

5 years ago

1.4.31

5 years ago

1.4.30

5 years ago

1.4.29

5 years ago

1.4.28

5 years ago

1.4.27

5 years ago

1.4.26

6 years ago

1.4.25

6 years ago

1.4.24

6 years ago

1.4.23

6 years ago

1.4.22

6 years ago

1.4.21

6 years ago

1.4.20

6 years ago

1.4.19

6 years ago

1.4.18

6 years ago

1.4.17

6 years ago

1.4.16

6 years ago

1.4.15

6 years ago

1.4.14

6 years ago

1.4.13

6 years ago

1.4.12

6 years ago

1.4.11

6 years ago

1.4.10

6 years ago

1.4.9

6 years ago

1.4.8

6 years ago

1.4.7

6 years ago

1.4.6

6 years ago

1.4.5

6 years ago

1.4.4

6 years ago

1.4.3

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

1.3.3

6 years ago

1.3.2

6 years ago

1.3.1

6 years ago

1.3.0

6 years ago

1.2.58

6 years ago

1.2.57

6 years ago

1.2.56

6 years ago

1.2.55

6 years ago

1.2.54

6 years ago

1.2.53

6 years ago

1.2.52

6 years ago

1.2.51

6 years ago

1.2.50

6 years ago

1.2.49

6 years ago

1.2.48

6 years ago

1.2.47

6 years ago

1.2.45

6 years ago

1.2.44

6 years ago

1.2.43

6 years ago

1.2.42

6 years ago

1.2.41

6 years ago

1.2.40

6 years ago

1.2.39

6 years ago

1.2.38

6 years ago

1.2.37

6 years ago

1.2.36

6 years ago

1.2.35

6 years ago

1.2.34

6 years ago

1.2.33

6 years ago

1.2.30

6 years ago

1.2.29

6 years ago

1.2.28

6 years ago

1.2.27

6 years ago

1.2.26

6 years ago

1.2.25

6 years ago

1.2.24

6 years ago

1.2.23

6 years ago

1.2.22

6 years ago

1.2.21

6 years ago

1.2.19

6 years ago

1.2.18

6 years ago

1.2.17

6 years ago

1.2.16

6 years ago

1.2.15

6 years ago

1.2.14

6 years ago

1.2.13

6 years ago

1.2.12

6 years ago

1.2.11

6 years ago

1.2.10

6 years ago

1.2.9

6 years ago

1.2.8

6 years ago

1.2.7

6 years ago

1.2.5

6 years ago

1.2.4

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.36

6 years ago

1.0.35

6 years ago

1.0.34

6 years ago

1.0.33

6 years ago

1.0.32

6 years ago

1.0.31

6 years ago

1.0.30

6 years ago

1.0.29

6 years ago

1.0.28

6 years ago

1.0.27

6 years ago

1.0.26

6 years ago

1.0.25

6 years ago

1.0.24

6 years ago

1.0.23

6 years ago

1.0.22

6 years ago

1.0.21

6 years ago

1.0.20

6 years ago

1.0.19

6 years ago

1.0.18

6 years ago

1.0.17

6 years ago

1.0.16

6 years ago

1.0.15

6 years ago

1.0.14

6 years ago

1.0.13

6 years ago

1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.7.297

6 years ago

0.7.296

6 years ago

0.7.294

6 years ago

0.7.293

6 years ago

0.7.292

6 years ago

0.7.291

6 years ago

0.7.290

6 years ago

0.7.289

6 years ago

0.7.288

6 years ago

0.7.287

6 years ago

0.7.286

6 years ago

0.7.285

6 years ago

0.7.283

6 years ago

0.7.282

6 years ago

0.7.281

6 years ago

0.7.280

6 years ago

0.7.279

6 years ago