open-index/open-npm huggingface dataset:
npm package: @sidetree/cas
Description: This package contains a mock implementation of [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage) used in Sidetree, and a test suite to measure other CAS implementation against
Author: Orie Steele
Latest version: 0.3.1-unstable.60

# @sidetree/cas

This package contains a mock implementation of [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage) used in Sidetree, and a test suite to measure other CAS implementation against

## Usage

```
npm install --save @sidetree/cas
```

## Development

```
npm install
npm run test
```
npm package: @sidetree/cas-ipfs
Description: This package contains several implementations of [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage) used in Sidetree.
Author: gjgd
Latest version: 0.3.1-unstable.60

# @sidetree/cas-ipfs

This package contains several implementations of [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage) used in Sidetree.

It contains:
- `IpfsCas`: A CAS interface for IPFS
- `IpfsCasWithCache`: An efficient CAS interface that uses IPFS and a cache for faster read

## Usage

```
npm install --save @sidetree/cas-ipfs
```

## Development

```
npm install
npm run test
```
npm package: @sidetree/cas-s3
Description: This package contains an implementation of [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage) used in Sidetree.
Author: gjgd
Latest version: 0.3.1-unstable.60

# @sidetree/cas-s3

This package contains an implementation of [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage) used in Sidetree.

It contains:

- `S3Cas`: A CAS interface for AWS S3
- `MockS3Cas`: A Mock-CAS interface for AWS S3

## Usage

```
npm install --save @sidetree/cas-s3
```

## Development

```
git clone https://github.com/transmute-industries/sidetree.js.git && cd sidetree.js
npm install
```

## Testing for this Module

```
cd packages/cas-s3
npm run test
```

By default the test for this package will use a the MockS3Cas
implementation to replicate the functionality of S3 on AWS.
To enable the AWS S3Cas module for testing the following two
actions are required.

1. Create a `~/.aws/credentials` file
2. Enable the use of the S3Cas by editing the test file

**Instructions**

1. Create a `~/.aws/credentials` file

To create the `~/.aws/credentials` you will need to have the aws cli
tool, which can be installed from this repository: https://github.com/aws/aws-cli.

Once that is installed, run the `aws configure` command to create the file.

```
$ aws configure
AWS Access Key ID: MYACCESSKEY
AWS Secret Access Key: MYSECRETKEY
Default region name [us-west-2]: us-west-2
Default output format [None]: json
```

2. Enable the use of the S3Cas by editing the test file

To enable the `S3Cas` module for testing, the test file is located at `src/S3Cas.spec.ts`.
You must change the variable value of `forceMock` from `true` to `false`. An example
is shown below.

```
import { testSuite } from '@sidetree/cas';
import S3Cas from './S3Cas';
import MockS3Cas from './MockS3Cas';
import casConfig from './cas-config.json';
// import AWS object without services
import AWS from 'aws-sdk/global';

const forceMock = false; // This line

const config = new AWS.Config();
if (forceMock) {
  console.warn('Using mock s3 interface for S3 tests');
} else if (!config.credentials) {
  console.warn(
    'No AWS credentials found in ~/.aws/credentials, using mock interace'
  );
}

const cas =
  config.credentials && !forceMock
    ? new S3Cas(casConfig.s3BucketName)
    : new MockS3Cas();

testSuite(cas);
```

Note that you will need both the `~/.aws/credentials` file and `const forceMock = false;`
for the S3 module to run.

## Bucket Name

The default bucket name is `sidetree-cas-s3-test`. The value for this can be changed
in `src/cas-config.json`.

```
{
  "s3BucketName": "sidetree-cas-s3-test"
}
```
npm package: @sidetree/common
Description: This module contains common type definitions and encoding utilities.
Author: Orie Steele
Latest version: 0.3.1-unstable.60

# @sidetree/common

This module contains common type definitions and encoding utilities.

This module MUST remain capable of running in browser environments.

## Usage

```
npm install --save @sidetree/common
```

## Development

```
npm install
```
npm package: @sidetree/core
Description: This module contains the core logic, functions and classes associated with the sidetree protocol.
Author: Orie Steele
Latest version: 0.3.1-unstable.60

# @sidetree/core

This module contains the core logic, functions and classes associated with the sidetree protocol.

It also contains crypto dependencies and other backend dependencies that prevent it from runnin in a browser today.

## Usage

```
npm install --save @sidetree/core
```

## Development

```
npm install
npm run test
```
npm package: @sidetree/crypto
Description: This module contains sidetree crypto dependencies.
Author: Orie Steele
Latest version: 0.3.1-unstable.60

# @sidetree/crypto

This module contains sidetree crypto dependencies.

This module MUST remain capable of running in browser environments.

## Usage

```
npm install --save @sidetree/crypto
```

## Development

```
npm install
npm run test
```
npm package: @sidetree/db
Description: This package contains implementations of database storage means for storing Sidetree artifacts like Operations, Transactions, etc...
Author: Orie Steele
Latest version: 0.3.1-unstable.60

# @sidetree/db

This package contains implementations of database storage means for storing Sidetree artifacts like Operations, Transactions, etc...

It currently contains only one implementation in MongoDB. Another implementation that supports RDBMS type databases in coming next

## Usage

```
npm install --save @sidetree/db
```

## Development

```
npm install
npm run test
```
npm package: @sidetree/ethereum
Description: This package contains an implementation of the Sidetree ledger interface on the Ethereum ledger. It passes the test suite defined in `@sidetree/ledger`.
Author: Orie Steele
Latest version: 0.3.1-unstable.60

# @sidetree/ethereum

This package contains an implementation of the Sidetree ledger interface on the Ethereum ledger. It passes the test suite defined in `@sidetree/ledger`.

## Usage

```
npm install --save @sidetree/ethereum
```

## Development

```
npm install
npm run test
```

## Deploying the contract to live network (ropsten, mainnet, etc...)

1) Fill in the values in `.env` for production use. Need:
  - funded mnemonic
  - rpc url (use infura)
2) Check that truffle-config.js contains the network you want to deploy to
3) `npx truffle migrate --network ropsten`
npm package: @sidetree/ledger
Description: Contains a ledger agnostic interface for Sidetree and a test suite that a Sidetree ledger implementation must pass (see `@sidetree/ethereum`).
Author: Orie Steele
Latest version: 0.3.1-unstable.60

# @sidetree/ledger

Contains a ledger agnostic interface for Sidetree and a test suite that a Sidetree ledger implementation must pass (see `@sidetree/ethereum`).

## Usage

```
npm install --save @sidetree/ledger
```

## Development

```
npm install
npm run test
```
npm package: @sidetree/wallet
Description: This package contains an implementation of the Universal Wallet spec for Sidetree, and is also an SDK for creating Sidetree operations.
Author: Orie Steele
Latest version: 0.3.1-unstable.60

# @sidetree/wallet

This package contains an implementation of the Universal Wallet spec for Sidetree, and is also an SDK for creating Sidetree operations.

## Usage

```
npm install --save @sidetree/wallet
```

## Development

```
npm install
npm run test
```