
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
redis-registry
Advanced tools
Service registry and discovery for distributed systems on top of redis and node.js
npm install redis-registry
Computer 1
const registry = require('redis-registry');
const redisConfig = {
host: '192.168.1.50',
port: 6379
}
const services = registry(redisConfig);
// Join the registry
services.join('my-service-name', {port:8080});
Computer 2
const registry = require('redis-registry');
const redisConfig = {
host: '192.168.1.50',
port: 6379
}
const services = registry(redisConfig);
// Do a lookup
services.lookup('my-service-name', function(err, service) {
console.log('Found the following service:');
console.log(service);
});
Running the above example will produce the following output
Found the following service:
{
name: 'my-service-name',
port: 8080,
hostname: '192.168.1.10',
host: '192.168.1.10:8080',
url: 'http://192.168.1.10:8080'
}
Note: If no hostname is passed to the join
function, it will pickup the main interface IP as the hostname. If you need to use the IP of a non-primary interface, set the environment variable REGISTRY_INTERFACE
to the name of the device of your choice (eth1
, en1
, etc)
services = registry(redisConfig)
Create a new registry clientservices.join(name, service, [cb])
Join the registry with a new serviceservices.leave([name], [cb])
Leave the registry.services.lookup(name, cb)
Lookup a single serviceservices.list([name], cb)
List all services as an array. Omit the name to list all servicesServices are just JSON documents. redis-registry
will add a default hostname
and a couple of other properties.
An example of a service document could be:
{
name: 'my-service',
port: 8080,
hostname: '192.168.1.10', // added by redis-registry
host: '192.168.1.10:8080', // added by redis-registry
url: 'http://192.168.1.10:8080' // added by redis-registry
}
These documents are saved in redis with a TTL of 10s.
Every 5s redis-registry
will send an update for each service to the registry which resets the expiration counter keeping the service record.
If possible you should call services.leave()
before exiting your service process. Otherwise your service will be garbage collected after (at most) 10s.
If your process goes down, it will automatically leave the registry (due to the TTL) and will not be discovered from other process.
MIT
FAQs
Service registry for Node.js on top of redis
We found that redis-registry demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.