Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discovery Node ServiceType + Local Setup #1069

Merged
merged 3 commits into from
Nov 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion discovery-provider/.version.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"version": "0.3.25",
"service": "discovery-provider"
"service": "discovery-node"
}
2 changes: 1 addition & 1 deletion discovery-provider/src/tasks/index_network_peers.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
logger = logging.getLogger(__name__)

sp_factory_registry_key = bytes("ServiceProviderFactory", "utf-8")
content_node_service_type = bytes("creator-node", "utf-8")
content_node_service_type = bytes("content-node", "utf-8")

# What is a "Peer" in this context?
# A peer represents another known entity in the network
Expand Down
2 changes: 1 addition & 1 deletion libs/examples/initializeVersions.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const Web3 = require('../src/web3')
const AudiusLibs = require('../src/index')
const serviceTypeList = ['discovery-provider', 'creator-node', 'content-service']
const serviceTypeList = ['discovery-node', 'content-node']
const dataWeb3ProviderEndpoint = 'https://sokol.poa.network:443'
const ethWeb3ProviderEndpoint = 'https://ropsten.infura.io/v3/c569c6faf4f14d15a49d0044e7ddd668'
const dataRegistryAddress = '0x09033761774Fe45F40A47191DdF873F18B62DE05'
Expand Down
69 changes: 17 additions & 52 deletions libs/initScripts/local.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ const { getEthContractAccounts } = require('./helpers/utils')

// Directories within the audius-protocol repository used for development
const serviceDirectoryList = ['discovery-provider', 'creator-node']
const spDiscProvType = serviceDirectoryList[0]
const spCreatorNodeType = 'content-node'
const discProvEndpoint1 = 'http://audius-disc-prov_web-server_1:5000'
const discProvEndpoint2 = 'http://audius-disc-prov_web-server_2:5000'
const creatorNodeEndpoint1 = 'http://cn1_creator-node_1:4000'
Expand All @@ -29,6 +27,10 @@ const contentNodeType = 'content-node'
const contentNodeTypeMin = 200000
const contentNodeTypeMax = 10000000

const discoveryNodeType = 'discovery-node'
const discoveryNodeTypeMin = 200000
const discoveryNodeTypeMax = 7000000

// try to dynamically get versions from .version.json
let serviceVersions = {}
let serviceTypesList = []
Expand Down Expand Up @@ -109,22 +111,6 @@ const run = async () => {
break
}

case 'register-cnode-1':
await _registerCnode1(audiusLibs, ethAccounts)
break

case 'register-cnode-2':
await _registerCnode2(audiusLibs, ethAccounts)
break

case 'register-cnode-3':
await _registerCnode3(audiusLibs, ethAccounts)
break

case 'register-cnode-4':
await _registerCnode4(audiusLibs, ethAccounts)
break

case 'deregister-sps':
await _deregisterAllSPs(audiusLibs, ethAccounts)
break
Expand Down Expand Up @@ -168,46 +154,22 @@ const _initializeLocalEnvironment = async (audiusLibs, ethAccounts) => {

// Account 0
const _registerDiscProv1 = async (audiusLibs, ethAccounts) => {
await registerLocalService(audiusLibs, spDiscProvType, discProvEndpoint1, amountOfAuds)
await registerLocalService(audiusLibs, discoveryNodeType, discProvEndpoint1, amountOfAuds)
}

// Account 3
const _registerDiscProv2 = async (audiusLibs, ethAccounts) => {
let audiusLibs4 = await initAudiusLibs(true, null, ethAccounts[3])
await registerLocalService(audiusLibs4, spDiscProvType, discProvEndpoint2, amountOfAuds)
await registerLocalService(audiusLibs4, discoveryNodeType, discProvEndpoint2, amountOfAuds)
}

const makeCreatorNodeEndpoint = (serviceNumber) => `http://cn${serviceNumber}_creator-node_1:${4000 + parseInt(serviceNumber) - 1}`

// Templated cnode to allow for dynamic number of services
const _registerCnode = async (ethAccounts, serviceNumber) => {
const audiusLibs = await initAudiusLibs(true, null, ethAccounts[serviceNumber])
const endpoint = makeCreatorNodeEndpoint(serviceNumber)
await registerLocalService(audiusLibs, spCreatorNodeType, endpoint, amountOfAuds)
}

// Account 1
const _registerCnode1 = async (audiusLibs, ethAccounts) => {
let acct = ethAccounts[1].toLowerCase()
let audiusLibs2 = await initAudiusLibs(true, null, acct)
await registerLocalService(audiusLibs2, spCreatorNodeType, creatorNodeEndpoint1, amountOfAuds)
}

// Account 2
const _registerCnode2 = async (audiusLibs, ethAccounts) => {
let audiusLibs2 = await initAudiusLibs(true, null, ethAccounts[2])
await registerLocalService(audiusLibs2, spCreatorNodeType, creatorNodeEndpoint2, amountOfAuds)
}

// Account 3
const _registerCnode3 = async (audiusLibs, ethAccounts) => {
let audiusLibs2 = await initAudiusLibs(true, null, ethAccounts[3])
await registerLocalService(audiusLibs2, spCreatorNodeType, creatorNodeEndpoint3, amountOfAuds)
}

// Account 4
const _registerCnode4 = async (audiusLibs, ethAccounts) => {
let audiusLibs2 = await initAudiusLibs(true, null, ethAccounts[4])
await registerLocalService(audiusLibs2, spCreatorNodeType, creatorNodeEndpoint4, amountOfAuds)
await registerLocalService(audiusLibs, contentNodeType, endpoint, amountOfAuds)
}

const _updateCreatorNodeConfig = async (account, readPath, writePath = readPath, endpoint = null, isShell = false) => {
Expand All @@ -220,18 +182,18 @@ const _updateCreatorNodeConfig = async (account, readPath, writePath = readPath,

const _deregisterAllSPs = async (audiusLibs, ethAccounts) => {
const audiusLibs1 = audiusLibs
await deregisterLocalService(audiusLibs1, spDiscProvType, discProvEndpoint1)
await deregisterLocalService(audiusLibs1, discoveryNodeType, discProvEndpoint1)
const audiusLibs2 = await initAudiusLibs(true, null, ethAccounts[3])
await deregisterLocalService(audiusLibs2, spDiscProvType, discProvEndpoint2)
await deregisterLocalService(audiusLibs2, discoveryNodeType, discProvEndpoint2)

const audiusLibs3 = await initAudiusLibs(true, null, ethAccounts[1])
await deregisterLocalService(audiusLibs3, spCreatorNodeType, creatorNodeEndpoint1)
await deregisterLocalService(audiusLibs3, contentNodeType, creatorNodeEndpoint1)
const audiusLibs4 = await initAudiusLibs(true, null, ethAccounts[2])
await deregisterLocalService(audiusLibs4, spCreatorNodeType, creatorNodeEndpoint2)
await deregisterLocalService(audiusLibs4, contentNodeType, creatorNodeEndpoint2)
const audiusLibs5 = await initAudiusLibs(true, null, ethAccounts[4])
await deregisterLocalService(audiusLibs5, spCreatorNodeType, creatorNodeEndpoint3)
await deregisterLocalService(audiusLibs5, contentNodeType, creatorNodeEndpoint3)
const audiusLibs6 = await initAudiusLibs(true, null, ethAccounts[5])
await deregisterLocalService(audiusLibs6, spCreatorNodeType, creatorNodeEndpoint4)
await deregisterLocalService(audiusLibs6, contentNodeType, creatorNodeEndpoint4)
}

const _initAllVersions = async (audiusLibs) => {
Expand All @@ -244,6 +206,9 @@ const _initEthContractTypes = async (libs) => {
console.log(`Registering additional service type ${contentNodeType} - Min=${contentNodeTypeMin}, Max=${contentNodeTypeMax}`)
// Add content-node serviceType
await addServiceType(libs, contentNodeType, contentNodeTypeMin, contentNodeTypeMax)
console.log(`Registering additional service type ${contentNodeType} - Min=${contentNodeTypeMin}, Max=${contentNodeTypeMax}`)
// Add discovery-node serviceType
await addServiceType(libs, discoveryNodeType, discoveryNodeTypeMin, discoveryNodeTypeMax)
}

// Write an update to either the common .sh file for creator nodes or docker env file
Expand Down
2 changes: 1 addition & 1 deletion libs/src/api/serviceProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const { Base } = require('./base')
const { timeRequestsAndSortByVersion } = require('../utils/network')

const CREATOR_NODE_SERVICE_NAME = 'content-node'
const DISCOVERY_PROVIDER_SERVICE_NAME = 'discovery-provider'
const DISCOVERY_PROVIDER_SERVICE_NAME = 'discovery-node'

/**
* API methods to interact with Audius service providers.
Expand Down
4 changes: 2 additions & 2 deletions libs/src/services/discoveryProvider/constants.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module.exports.DISCOVERY_PROVIDER_TIMESTAMP = '@audius/libs:discovery-provider-timestamp'
module.exports.DISCOVERY_SERVICE_NAME = 'discovery-provider'
module.exports.DISCOVERY_PROVIDER_TIMESTAMP = '@audius/libs:discovery-node-timestamp'
module.exports.DISCOVERY_SERVICE_NAME = 'discovery-node'
module.exports.UNHEALTHY_BLOCK_DIFF = 15
module.exports.REGRESSED_MODE_TIMEOUT = 2 * 60 * 1000 // two minutes

Expand Down
3 changes: 1 addition & 2 deletions libs/src/services/ethContracts/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,7 @@ const {
} = require('../discoveryProvider/constants')

const serviceType = Object.freeze({
DISCOVERY_PROVIDER: 'discovery-provider',
CONTENT_SERVICE: 'content-service',
DISCOVERY_PROVIDER: 'discovery-node',
CREATOR_NODE: 'content-node'
})
const serviceTypeList = Object.values(serviceType)
Expand Down