Compare commits

..
31 Commits
Author SHA1 Message Date
Chris Troutner 643dfd8fc0 Merge pull request #22 from Permissionless-Software-Foundation/ct-unstable
fix(upstream): Synced with upstream ipfs-service-provider
2021-08-28 07:56:40 -07:00
Chris Troutner 944d721296 fix(e2e): Fixed manual consumer test 2021-08-28 07:38:44 -07:00
Chris Troutner 96e4afd6c8 fix(upstream): Synced with upstream ipfs-service-provider 2021-08-27 16:21:17 -07:00
Chris Troutner 002e6657ff Merge pull request #26 from Permissionless-Software-Foundation/ct-unstable
fix(ipfs-coord): Updated to v6.4.0
2021-08-27 15:43:16 -07:00
Chris Troutner fb215b11b7 fix(production): Tweeking production Docker container slightly 2021-08-27 15:41:33 -07:00
Chris Troutner 1618289078 fix(ipfs-coord): Updated to v6.4.0 2021-08-27 15:04:09 -07:00
Chris Troutner 2ebe42d5f4 Merge pull request #25 from Permissionless-Software-Foundation/ct-unstable
fix(ipfs-coord): Upgrading to v6.3.0
2021-08-26 21:27:13 -07:00
Chris Troutner 326271f703 Updating Dockerfile 2021-08-26 21:24:27 -07:00
Chris Troutner 0480f54287 fix(ipfs-coord): Upgrading to v6.3.0 2021-08-26 21:23:37 -07:00
Chris Troutner f9df8c7fab fix(production): Running Docker as root 2021-08-26 10:53:53 -07:00
Chris Troutner 2ae550c027 Merge pull request #24 from Permissionless-Software-Foundation/ct-unstable
fix(production): Updating Docker container
2021-08-26 10:29:01 -07:00
Chris Troutner eca131fefc minor comments to startup script 2021-08-26 10:27:22 -07:00
Chris Troutner 596645ad6b Bumping to ipfs-coord v6.1.8 2021-08-26 10:17:11 -07:00
Chris Troutner 2a2d940e7c fix(startup): Adding startup and env var settings 2021-08-26 09:21:08 -07:00
Chris Troutner 46b0c595f9 fix(production): Updating Docker container 2021-08-26 08:54:33 -07:00
Chris Troutner eab7a30926 Merge pull request #21 from Permissionless-Software-Foundation/ct-unstable
fix(psf-bch-wallet): Got working with psf-bch-wallet and ipfs-coord v6
2021-08-24 16:05:04 -07:00
Chris Troutner 85a8efb5bf fix(psf-bch-wallet): Got working with psf-bch-wallet and ipfs-coord v6 2021-08-24 16:03:17 -07:00
Chris Troutner e33ee49879 Merge pull request #20 from Permissionless-Software-Foundation/ct-unstable
fix(upstream): Synced with upstream repo ipfs-service-provider
2021-08-24 11:01:09 -07:00
Chris Troutner 9c53204a91 fix(upstream): Synced with upstream repo ipfs-service-provider 2021-08-24 10:59:39 -07:00
Chris Troutner 6faf1ccf86 Merge branch 'master' into ct-unstable 2021-08-24 10:58:21 -07:00
Chris Troutner 8fafe96e01 Merge pull request #23 from Permissionless-Software-Foundation/ct-unstable
fix(ipfs-coord): Bumping to v6.1.4
2021-08-24 10:53:32 -07:00
Chris Troutner d06c995174 fix(ipfs-coord): Bumping to v6.1.4 2021-08-24 10:51:58 -07:00
Chris Troutner 2d02904ed1 fix(ipfs-coord): Bumped to v6.1.3 2021-08-24 10:44:25 -07:00
Chris Troutner 51d7ddb362 Merge pull request #22 from Permissionless-Software-Foundation/ct-unstable
fix(node-fetch): Adding node-fetch as dependency, which was preventin…
2021-08-24 10:28:51 -07:00
Chris Troutner ee1fbad02a Fixing broken test 2021-08-24 10:26:46 -07:00
Chris Troutner f5ae98cb9c fix(node-fetch): Adding node-fetch as dependency, which was preventing install on some machines 2021-08-24 10:23:19 -07:00
Chris Troutner e416478522 Explicitly adding node-pre-gyp 2021-08-24 07:54:04 -07:00
Chris Troutner ce85dffc97 Adding node-fetch as a dep 2021-08-24 07:31:52 -07:00
Chris Troutner c9f7a43339 fix(Docker): integrating changes into production Docker container 2021-08-24 07:27:10 -07:00
Chris Troutner a885fb7edf Merge pull request #19 from Permissionless-Software-Foundation/ct-unstable
fix(version): Bumping to v1.11.0 for wallet consumer
2021-08-23 17:16:23 -07:00
Chris Troutner 93d1542522 fix(version): Bumping to v1.11.0 for wallet consumer 2021-08-23 17:12:49 -07:00
11 changed files with 3006 additions and 9055 deletions
+7 -1
View File
@@ -47,6 +47,9 @@ class Server {
useNewUrlParser: true
})
console.log(`Starting environment: ${config.env}`)
console.log(`Debug level: ${config.debugLevel}`)
// MIDDLEWARE START
app.use(convert(logger()))
@@ -68,7 +71,7 @@ class Server {
// Attach REST API and JSON RPC controllers to the app.
const Controllers = require('../src/controllers')
const controllers = new Controllers()
await controllers.attachControllers(app)
await controllers.attachRESTControllers(app)
app.controllers = controllers
@@ -94,6 +97,9 @@ class Server {
)
}
// Attach the other IPFS controllers
await controllers.attachControllers(app)
return app
} catch (err) {
console.error('Could not start server. Error: ', err)
+6 -1
View File
@@ -73,5 +73,10 @@ module.exports = {
// IPFS Ports
ipfsTcpPort: process.env.IPFS_TCP_PORT ? process.env.IPFS_TCP_PORT : 5668,
ipfsWsPort: process.env.IPFS_WS_PORT ? process.env.IPFS_WS_PORT : 5669
ipfsWsPort: process.env.IPFS_WS_PORT ? process.env.IPFS_WS_PORT : 5669,
// BCH Mnemonic for generating encryption keys and payment address
mnemonic: process.env.MNEMONIC ? process.env.MNEMONIC : '',
debugLevel: process.env.DEBUG_LEVEL ? parseInt(process.env.DEBUG_LEVEL) : 2
}
+2930 -9022
View File
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -1,6 +1,6 @@
{
"name": "ipfs-bch-wallet-service",
"version": "1.9.1",
"version": "1.11.3",
"description": "IPFS and REST service providing blockchain access needed by a wallet. ",
"main": "index.js",
"scripts": {
@@ -28,7 +28,7 @@
"bcryptjs": "^2.4.3",
"glob": "^7.1.6",
"ipfs": "0.55.4",
"ipfs-coord": "^6.1.2",
"ipfs-coord": "^6.4.1",
"jsonrpc-lite": "^2.2.0",
"jsonwebtoken": "^8.5.1",
"jwt-bch-lib": "^1.3.0",
@@ -45,6 +45,7 @@
"koa2-ratelimit": "^0.9.0",
"line-reader": "^0.4.0",
"mongoose": "^5.11.15",
"node-fetch": "npm:@achingbrain/node-fetch@^2.6.7",
"nodemailer": "^6.4.17",
"passport-local": "^1.0.0",
"winston": "^3.3.3",
+7 -8
View File
@@ -23,34 +23,33 @@ WORKDIR /home/safeuser
#RUN runuser -l safeuser -c "npm config set prefix '~/.npm-global'"
# Switch to user account.
USER safeuser
#USER safeuser
# Prep 'sudo' commands.
RUN echo 'abcd8765' | sudo -S pwd
#RUN echo 'abcd8765' | sudo -S pwd
# Clone the rest.bitcoin.com repository
WORKDIR /home/safeuser
RUN git clone https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-service
# RUN mv koa-api-boilerplate koa
# RUN mkdir keys
# Switch to the desired branch. `master` is usually stable,
# and `stage` has the most up-to-date changes.
WORKDIR /home/safeuser/ipfs-bch-wallet-service
# For development: switch to unstable branch
# RUN git checkout unstable
RUN git checkout ct-unstable
# Install dependencies
RUN npm install -g @mapbox/node-pre-gyp
RUN npm install
# Generate the API docs
RUN npm run docs
# Calling out the directorys that should be mounted as external volumes.
RUN mkdir /home/safeuser/ipfsdata
RUN mkdir /home/safeuser/orbitdb
RUN mkdir /home/safeuser/.ipfsdata
#RUN mkdir /home/safeuser/orbitdb
VOLUME /home/safeuser/ipfsdata
VOLUME /home/safeuser/orbitdb
#VOLUME /home/safeuser/orbitdb
# Start the application.
COPY start-production.sh start-production.sh
+2 -2
View File
@@ -22,7 +22,7 @@ bch-wallet-service:
- '5668:5668' # IPFS TCP Port
- '5669:5669' # IPFS WS Port
volumes:
- ../ipfsdata:/home/safeuser/ipfsdata
- ../orbitdb:/home/safeuser/orbitdb
- ./data/.ipfsdata:/home/safeuser/ipfs-service-provider/.ipfsdata
# - ../orbitdb:/home/safeuser/orbitdb
restart: always
+21 -5
View File
@@ -1,5 +1,26 @@
#!/bin/bash
# BEGIN: Optional configuration settings
# This mnemonic is used to set up persistent public key for e2ee
# Replace this with your own 12-word mnemonic.
export MNEMONIC="olive two muscle bottom coral ancient wait legend bronze useful process session"
# The human readable name this IPFS node identifies as.
export COORD_NAME=ipfs-service-provider-generic
# Allow this node to function as a circuit relay. It must not be behind a firewall.
#export ENABLE_CIRCUIT_RELAY=true
# Debug level. 0 = minimal info. 2 = max info.
export DEBUG_LEVEL=1
# END: Optional configuration settings
# Production database connection string.
export DBURL=mongodb://172.17.0.1:5555/ipfs-service-prod
# Customize these environment variables for your own installation.
export AUTHSERVER=https://auth.fullstack.cash
export APISERVER=https://api.fullstack.cash/v5/
@@ -11,10 +32,5 @@ export PORT=5001 # REST API
export IPFS_TCP_PORT=5668 # IPSF TCP Port
export IPFS_WS_PORT=5669 # IPFS WS Port
# Production database connection string.
export DBURL=mongodb://172.17.0.1:5555/ipfs-service-prod
#export ENABLE_CIRCUIT_RELAY=1
export SVC_ENV=production
npm start
+6 -2
View File
@@ -43,6 +43,8 @@ class IpfsCoordAdapter {
}
async start (localConfig = {}) {
// console.log('this.config.announceJsonLd: ', this.config.announceJsonLd)
this.ipfsCoord = new this.IpfsCoord({
ipfs: this.ipfs,
type: 'node.js',
@@ -51,11 +53,13 @@ class IpfsCoordAdapter {
privateLog: console.log, // Default to console.log
isCircuitRelay: this.config.isCircuitRelay,
apiInfo: this.config.apiInfo,
announceJsonLd: this.config.announceJsonLd
announceJsonLd: this.config.announceJsonLd,
mnemonic: this.config.mnemonic,
debugLevel: this.config.debugLevel
})
// Wait for the ipfs-coord library to signal that it is ready.
await this.ipfsCoord.start()
await this.ipfsCoord.start({ type: 'node.js' })
// Signal that this adapter is ready.
this.isReady = true
+1 -1
View File
@@ -36,7 +36,7 @@ class Controllers {
await this.adapters.start()
// Attach the REST controllers to the Koa app.
this.attachRESTControllers(app)
// this.attachRESTControllers(app)
this.attachRPCControllers()
}
+21 -9
View File
@@ -45,12 +45,17 @@ class TestUtils {
async sendRPC (ipfsId, cmdStr) {
try {
// Send the RPC command to the server/service.
await this.ipfsCoord.ipfs.orbitdb.sendToDb(ipfsId, cmdStr)
// await this.ipfsCoord.ipfs.orbitdb.sendToDb(ipfsId, cmdStr)
await this.ipfsCoord.useCases.peer.sendPrivateMessage(
ipfsId,
cmdStr,
this.ipfsCoord.thisNode
)
let retData
// This event is triggered when the response comes back.
this.eventEmitter.on('rpcData', inData => {
this.eventEmitter.on('rpcData', (inData) => {
retData = inData
})
@@ -98,11 +103,8 @@ class TestUtils {
apiInfo: 'none',
announceJsonLd: announceJsonLd
})
await this.ipfsCoord.ipfs.start()
// some ipfs-coord versions do not have this function
if (this.ipfsCoord.isReady) {
await this.ipfsCoord.isReady()
}
await this.ipfsCoord.start()
// Wait to let ipfs-coord connect to subnet peers.
await this.bchjs.Util.sleep(30000)
@@ -126,10 +128,17 @@ class TestUtils {
// 'ipfs-coord peer info: ',
// this.ipfsCoord.ipfs.peers.state.peers[ipfsId]
// )
if (!this.ipfsCoord.ipfs.peers.state.peers[ipfsId]) {
const peers = this.ipfsCoord.thisNode.peerList
// console.log('peers: ', peers)
// console.log('Target peer in peerList? ', peers.includes(ipfsId))
// if (!this.ipfsCoord.ipfs.peers.state.peers[ipfsId]) {
if (!peers.includes(ipfsId)) {
throw new Error('Could not find UUT in ipfs-coord list of peers.')
}
} catch (err) {
console.log(err)
console.error('Error in connectToUut()')
console.log(
'Is the service running? Did you update the test-data.json file?'
@@ -215,7 +224,10 @@ class TestUtils {
const result = await this.sendRPC(ipfsId, cmdStr)
// console.log('result: ', result)
if (result.result.value.status && Array.isArray(result.result.value.transactions)) {
if (
result.result.value.status &&
Array.isArray(result.result.value.transactions)
) {
console.log('E2E TEST: transactions test passed.')
return true
} else {
+2 -2
View File
@@ -1,4 +1,4 @@
{
"uutAddr": "/ip4/192.168.43.115/tcp/5668/p2p/QmVBWvFxao7smhRjUUh1q8rNAEwMqbg4X3dqsQDMSjUpmx",
"uutId": "QmfUjMqUeXSCzNkFGrzvf79yvV62dtjsnwtBSYKx3wegXw"
"uutAddr": "/ip4/127.0.0.1/tcp/5701/p2p/QmWkjYRRTaxVEuGK8ip2X3trVyJShFs6U9g1h9x6fK5mZ2",
"uutId": "QmWkjYRRTaxVEuGK8ip2X3trVyJShFs6U9g1h9x6fK5mZ2"
}