Giter VIP home page Giter VIP logo

codiusd's People

Contributors

adrianhopebailie avatar andywong418 avatar gip avatar jmannanc avatar justmoon avatar mmaton avatar njlie avatar sentientwaffle avatar spearl avatar traviscrist avatar wilsonianb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codiusd's Issues

502 bad gateway

Hello,
Thanks for this wonderful package.
I tried to setup a codius host on Google Cloud Platform.
I already have a toast wallet with 25 xrp in it + subdomain (codius1.soolan.com) pointing to my VM instance ip and installed all the required libs and packages to get this going.
I had no problem with SSL certificate as well. But I got Bad Gateway error when I try to visit: https://codius1.soolan.com/version

Looking at the nginx error logs, it says

2018/07/09 02:47:13 [error] 25800#0: *18 connect() failed (111: Connection refused) while connecting to upstream, client: 129.126.203.71, server: , request: "GET /version HTTP/1.1", upstream: "http://127.0.0.1:3000/version", host: "codius1.soolan.com"

Here is the output for netstat -tulpn

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      25799/nginx: master 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      25799/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1109/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1105/master         
tcp6       0      0 :::80                   :::*                    LISTEN      25799/nginx: master 
tcp6       0      0 :::22                   :::*                    LISTEN      1109/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1105/master         
udp        0      0 127.0.0.1:323           0.0.0.0:*                           330/chronyd         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           574/dhclient        
udp6       0      0 ::1:323           ```

I followed the steps for trouble shooting the 502 issue (trying to make moneyd and codiusd listening, etc). yet still no luck.
When I start moneyd in debug mode I see this error in its logs:

```2018-07-09T02:40:35.205Z connector:app error TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type undefined
    at Function.from (buffer.js:207:11)
    at Object.encodeChannelProof (/usr/lib/node_modules/moneyd-uplink-xrp/node_modules/ilp-plugin-xrp-paychan-shared/lib/util.js:110:12)
    at Plugin._connect (/usr/lib/node_modules/moneyd-uplink-xrp/node_modules/ilp-plugin-xrp-asym-client/index.js:186:35)

Any idea what might be wrong?
Thank you very much.

Host builds of hyperd for other OSes

The most recent release of hyperd and hyperctl has broken port mapping related to iptables issues. Therefore we must build our own distro packages off of the latest master where these issues are fixed.

Currently we are only hosting builds of hyperd and hyperctl for CentOS 7. We should build and host versions of these packages for every OS hyper supports.
Afterward, we need to update the hyper-bootstrap script to point to all of these new builds.

Codius TestNet

At the moment Codius only accepts payments through live XRP accounts. This makes it very difficult to test certain contracts (in particular decentralized applications) so an environment that accepts moneyd payments on the testnet (perhaps using dedicated 'test' hosts that we run) would make testing deployment/codius manifest configurations a lot easier.

Generic questions on Codius

Hi,
sorry if this is not the best place to discuss these topics but I didn't find a proper place.
I have a few questions which are puzzling me:

  • Looking at Betty application, it seems that to coordinate multiple instances of the contract we have to code some "consensus" inside the contract itself. Isn't this a big limitation and a huge implementing challenge in case of complex contracts?
  • Since users can pick their hosts, how can we prove that a contract is really decentralized since the hosts can belong to a single entity or to a minority?
  • What happens when some hosts hosting my contract shut down or get DDoSed?
  • If users can start/stop their contract whenever they want, how can the contracts be considered "decentralized". Who guarantees that a specific contract will run and be operative in 2 months for example?

I really don't see the advantages over renting N amazon instances and running my app in those instances. But maybe I'm not understanding well. I'm missing the "decentralization" and smart contract point.

Host offline after updating to 1.1.3

My host is down and I can't reach it at https://codius.sneakyfish5.xyz/version
I just upgraded to 1.1.3, ran systemctl daemon-reload and systemctl restart codiusd and now my host is unreachable. I checked codiusd logs and heres the only error I see, which shouldn't affect anything.

Jul 13 02:06:12 codius.sneakyfish5.xyz codiusd[19752]: 390,
Jul 13 02:06:12 codius.sneakyfish5.xyz codiusd[19752]: 'https://codius1.auminijay.xyz' ]
Jul 13 02:06:12 codius.sneakyfish5.xyz codiusd[19752]: 2018-07-13T02:06:12.496Z follow-redirects debug options { protocol: 'https:',
Jul 13 02:06:12 codius.sneakyfish5.xyz codiusd[19752]: maxRedirects: 21,
Jul 13 02:06:35 codius.sneakyfish5.xyz codiusd[19752]: 2018-07-13T02:06:35.388Z connector:ilp-plugin-btp[parent]:trace debug processing btp packet {"type":1,"requestId":2350220395,"data":{"protocolData":[{"protocolName":"ilp","contentType":0,"data":{"type":"Buffer","data":[14,118,70,48,48,59,103,46,115,99,121,108,108,97,46,99,108,105,101,110,116,46,55,102,108,109,116,116,118,100,76,122,89,108,45,45,69,104,109,118,101,76,105,84,105,111,77,57,118,51,119,69,49,75,101,85,72,68,107,100,117,90,45,49,99,53,99,97,110,110,111,116,32,112,114,111,99,101,115,115,32,114,111,117,116,101,32,99,111,110,116,114,111,108,32,109,101,115,115,97,103,101,115,32,102,114,111,109,32,110,111,110,45,112,101,101,114,115,46,0]}}]}}
Jul 13 02:06:35 codius.sneakyfish5.xyz codiusd[19752]: 2018-07-13T02:06:35.388Z connector:ilp-plugin-btp[parent]:trace debug received BTP packet (TYPE_RESPONSE, RequestId: 2350220395): {"protocolData":[{"protocolName":"ilp","contentType":0,"data":{"type":"Buffer","data":[14,118,70,48,48,59,103,46,115,99,121,108,108,97,46,99,108,105,101,110,116,46,55,102,108,109,116,116,118,100,76,122,89,108,45,45,69,104,109,118,101,76,105,84,105,111,77,57,118,51,119,69,49,75,101,85,72,68,107,100,117,90,45,49,99,53,99,97,110,110,111,116,32,112,114,111,99,101,115,115,32,114,111,117,116,101,32,99,111,110,116,114,111,108,32,109,101,115,115,97,103,101,115,32,102,114,111,109,32,110,111,110,45,112,101,101,114,115,46,0]}}]}
Jul 13 02:06:35 codius.sneakyfish5.xyz codiusd[19752]: 2018-07-13T02:06:35.388Z connector:ccp-receiver[parent] debug route control message was rejected. rejection={"code":"F00","triggeredBy":"g.scylla.client.7flmttvdLzYl--EhmveLiTioM9v3wE1KeUHDkduZ-1c","message":"cannot process route control messages from non-peers.","data":{"type":"Buffer","data":[]}}
Jul 13 02:06:35 codius.sneakyfish5.xyz codiusd[19752]: 2018-07-13T02:06:35.388Z connector:ccp-receiver[parent] debug failed to set route control information on peer. error=Error: route control message rejected.
Jul 13 02:06:35 codius.sneakyfish5.xyz codiusd[19752]: at plugin.sendData.then.data (/usr/lib/node_modules/codiusd/node_modules/ilp-connector/src/routing/ccp-receiver.ts:174:17)
Jul 13 02:06:35 codius.sneakyfish5.xyz codiusd[19752]: at process._tickCallback (internal/process/next_tick.js:68:7)

I also ran a debug script that you can see here: https://github.com/xrp-community/codius-install

I saw an error there where it said:

==================================
codiusd
==================================


/usr/lib/node_modules/codiusd/src/services/Config.ts:58
      throw new Error('Codiusd requires CODIUS_PUBLIC_URI to be set')
            ^
Error: Codiusd requires CODIUS_PUBLIC_URI to be set
    at new Config (/usr/lib/node_modules/codiusd/src/services/Config.ts:58:13)
    at construct (/usr/lib/node_modules/codiusd/node_modules/reduct/index.ts:34:12)
    at reduct (/usr/lib/node_modules/codiusd/node_modules/reduct/index.ts:59:7)
    at new App (/usr/lib/node_modules/codiusd/src/services/App.ts:26:19)
    at construct (/usr/lib/node_modules/codiusd/node_modules/reduct/index.ts:34:12)
    at reduct (/usr/lib/node_modules/codiusd/node_modules/reduct/index.ts:59:7)
    at Object.<anonymous> (/usr/lib/node_modules/codiusd/src/index.ts:8:23)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)

==================================

So I checked my config but it looks all good to me. I'll paste it below for you to check.

[Unit]
Description=Codiusd
After=network.target nss-lookup.target
[Service]
ExecStart=/usr/bin/npm start
Environment="DEBUG=*"
Environment="CODIUS_PUBLIC_URI=https://codius.sneakyfish5.xyz"
Environment="CODIUS_COST_PER_MONTH=10"
Environment="CODIUS_ADDITIONAL_HOST_INFO=true"
Environment="CODIUS_MAX_MEMORY_FRACTION=0.80"
WorkingDirectory=/usr/lib/node_modules/codiusd
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=codiusd
User=root
Group=root
[Install]
WantedBy=multi-user.target

I would love to have any help you can provide me, and maybe figure this out, as I've never seen something like this before and the troubleshooting docs don't say anything about this.

New announcement mailing list request

Can I request a mailing list for announcements, for things like with moneyd-xrp rpm is updated, new version of codiusd is pushed and also when things like hyperd needs updating.

Thx,
Chris

vars should be gaurded

Vars like CODIUS_MAX_MEMORY_FRACTION should be gauaded for a ranged input ...

if you do .90 instead if 0.90 you actually get 90x instead of .9, which results in bad ram reporting

EventEmitter outputs memory leak error

(node:20985) MaxListenersExceededWarning: (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.

This occurred when running CODIUS_HYPER_NOOP=true node src/index.js in the root directory.

Ability to create codius contract from codius.org website

Would like to be able to create smart-contract without installing codius cli but through web interface. As it will need to deal with payment side of things maybe calculate fee then wait for user to send funds to a monitored account then soon as payment received start the smart contract with manifest info given.

Moving forward once this is part is done, a site of pre made contracts can be listed like what happens on digital ocean, aws, vultr when choosing flavour of operating system.

This makes it easier to deploy a codius smart contract to less technical users and helps adoption by building on the eco system.

Average load based on core count instead of lucky number

As a default the os.loadavg() showcases values based on cores. Therefore a 1.0 equals 100% utilization based on a single core system. In a dual core system 2.0 would be the same and 4.0 in a quad core system and so forth. So in a single core system 1.0 would be bad but in a quad core system it would be nothing.

Running a multi-core setup this would however make the server look overused and make developers choose another host eventhough there was a lot of processing power left. They have to have a way to know what number is the max to get an idea of the utilization of the system ressources.

I suggest that the averageload is changed to os.loadavg() / core count to give a more valid representation or atleast as a minimum add information about the core count in /info

Codiusd: Selftest Error

Hello,

After upgrading to 1.2.5 I get this error:

018-08-17T19:53:17.702Z codiusd:HttpServer info listening at https://codius 2018-08-17T19:53:17.732Z codiusd:SelfTest error { FetchError: request to https://codius/pods?duration=300 failed, reason: connect ECONNREFUSED 10.132.0.2:443 at ClientRequest.<anonymous> (/usr/lib/node_modules/codiusd/node_modules/node-fetch/lib/index.js:1345:11) at ClientRequest.emit (events.js:182:13) at TLSSocket.socketErrorListener (_http_client.js:391:9) at TLSSocket.emit (events.js:182:13) at emitErrorNT (internal/streams/destroy.js:82:8) at emitErrorAndCloseNT (internal/streams/destroy.js:50:3) at process._tickCallback (internal/process/next_tick.js:63:19) message: 'request to https://codius/pods?duration=300 failed, reason: connect ECONNREFUSED 10.132.0.2:443', type: 'system', errno: 'ECONNREFUSED', code: 'ECONNREFUSED' } 2018-08-17T19:53:17.735Z codiusd:SelfTest error Error: Self test failed: Upload Status=false Http Connection=false WebSocket Connection=false at SelfTest.run (/usr/lib/node_modules/codiusd/src/services/SelfTest.ts:202:13) at process._tickCallback (internal/process/next_tick.js:68:7)

Feature Request: Add option to include moneyd pod

  • Add option to include the moneyd pod to the codius manifest so that the pod is not always included.

Discussion:

  • If not provided like in the current codius.json file do we default this option to true or false?
  1. true makes sense since thats how it currently works
  2. false might be better since we might not want to have the default be that moneyd is included.

Minor issue in controller/static.ts for formatFreeMem

src/controller/static.ts

Line #20,

const formatFreeMem = (memory: number) => { return (memory % 1000000) > 0 ? (memory / 1000000).toString() + ' gigabytes' : (memory / 1000).toString() + ' megabytes' }

It should be changed to

const formatFreeMem = (memory: number) => { return (memory / 1000000000) > 0 ? (memory / 1000000000).toString() + ' gigabytes' : (memory / 1000000).toString() + ' megabytes' }

I am not sure, it will be corrected or not..

Codius CNAME support

Create a CNAME alias for a pod hash on a codius host.. doesn't have to be running.

root@codius:/etc/nginx/conf.d|⇒  host justmoon.mmaton.com
justmoon.mmaton.com is an alias for lgx4y2krfrg2wwetdv7wc63z2bluwwshjvjgeumh6plisqjxmnuq.codius.justmoon.com.
lgx4y2krfrg2wwetdv7wc63z2bluwwshjvjgeumh6plisqjxmnuq.codius.justmoon.com has address 147.75.68.187

Curl the codius pod address directly, note correct behaviour.

root@codius:/etc/nginx/conf.d|⇒  curl https://lgx4y2krfrg2wwetdv7wc63z2bluwwshjvjgeumh6plisqjxmnuq.codius.justmoon.com
{"statusCode":404,"error":"Not Found","message":"no pod with that hash found. hash=lgx4y2krfrg2wwetdv7wc63z2bluwwshjvjgeumh6plisqjxmnuq"}#                                   

Curl my CNAME record, we get the root domain effectively and the bog standard codius output.

root@codius:/etc/nginx/conf.d|⇒  curl https://justmoon.mmaton.com -k
<html>
  <h2 id="header">Codius Host v1.2.1 at https://codius.justmoon.com</h2>
  <p>This server is a Codius Host being run with <a href="https://github.com/codius/codiusd">codiusd.</a> If you want to upload a contract to this host, you may do so with the <a href="https://github.com/codius/codius">Codius CLI.</a></p>
  
  <p>For more information on Codius, visit <a href="https://codius.org">codius.org.</a></p>
  <table>
    <tr>
      <td>Server URI: </td>
      <td id="uri">https://codius.justmoon.com</td>
    </tr>
    <tr>
      <td>Number of Peers: </td>
      <td id="numPeers">5</td>
    </tr>
    <tr>
      <td>Server Uptime: </td>
      <td id="serverUptime">5374889</td>
    </tr>
    <tr>
      <td>Service Uptime: </td>
      <td id="serviceUptime">17.76</td>
    </tr>
    <tr>
      <td>Average Load: </td>
      <td id="avgLoad">0.0020751953125</td>
    </tr>
    <tr>
      <td>Currencies Accepted: </td>
      <td id="currency">XRP</td>
    </tr>
    <tr>
      <td>Monthly Hosting Rate: </td>
      <td id="costPerMonth">10</td>
    </tr>
    <tr>
      <td>Free Memory: </td>
      <td id="memory">303257.191936 gigabytes</td>
    </tr>
    <tr>
      <td>Max Memory Used?</td>
      <td id="fullMem">false</td>
    </tr>
  </table>
  <p>Additional information about this Codius host can be found at these links:</p>
  <li><a href="/peers">Peers of this host (Random set of 1,000)</a></li>
</html>

This is not really the behaviour I want out of codius. Is there any way to get CNAMEs to mask a codius pod hash?

Thanks,
Max

Request an user specific landing page

services/HttpServer.ts #53 ~

this.server.views({
  engines: {
    html: Handlebars
  },
  relativeTo: path.resolve(__dirname, '../'),
  path: 'templates'
})

In 1.2.x version, the landing page is fixed as above.
If add an extra parameter in config as 'CODIUS_HOST_INDEX=....'
and use it for resolving a path name,
sever operator can design their own index file.

Feature Request: Codius testing service

After deploying a host it would be useful to have a service that deploys a special test contract to that host and reports back if the host was successfully deployed or not.

The host operator should simply submit the address of their host and an email address and the service will deploy the contract, run some tests, and then kill the contract before sending an email report to the host.

capture and report codiusd.service configuration parsing issues

In my codiusd.service configuration file, the "CODIUS_PUBLIC_URI" property value was missing an ending double-quote. This caused my host to be discovered as "http://local.codius.org:3000" (default). While the fix was clear, it took quite some time to see this as there were no errors or warnings. Can the configuration be validated such that any potential issues may be, at least, flagged as warnings in log?

How to resolve exceeded money bandwidth errors?

A few of us have the codius host env set up and are able to run the examples locally and get back a pod + url to it, which works.

However, when we try the example against an external host, the codius client log has money bandwidth exceeded, with several retries.

What client/server config is necessary to get around this? My wallet is funded with 120 xrp.


  ilp-plugin-btp processing btp packet {"type":1,"requestId":4098386379,"data":{"protocolData":[{"protocolName":"ilp","contentType":0,"data":{"type":"Buffer","data":[14,51,84,48,52,8,103,46,115,99,121,108,108,97,37,101,120,99,101,101,100,101,100,32,109,111,110,101,121,32,98,97,110,100,119,105,100,116,104,44,32,116,104,114,111,116,116,108,105,110,103,46,0]}}]}} +2s
  ilp-plugin-btp received BTP packet (TYPE_RESPONSE, RequestId: 4098386379): {"protocolData":[{"protocolName":"ilp","contentType":0,"data":{"type":"Buffer","data":[14,51,84,48,52,8,103,46,115,99,121,108,108,97,37,101,120,99,101,101,100,101,100,32,109,111,110,101,121,32,98,97,110,100,119,105,100,116,104,44,32,116,104,114,111,116,116,108,105,110,103,46,0]}}]} +0ms
  ilp-protocol-stream:Client:Connection packet 7 was rejected +95ms
  ilp-protocol-stream:Client:Stream:1 cancelled holdId: 7 for: 22821 +97ms
  ilp-protocol-stream:Client:Connection handling reject: {"code":"T04","triggeredBy":"g.scylla","message":"exceeded money bandwidth, throttling.","data":{"type":"Buffer","data":[]}} +0ms
  ilp-protocol-stream:Client:Connection got temporary error. waiting 3200 before trying again +0ms

We've been trying to figure it out in the gitter chat.

request: allow contract version checking

With the coming of 1.2.1 and enforcement of a functional host before running it, it would be great if you have a mechanism that checks a version before allowing the contract to be deployed. For example some kind if minimal version that is required listed in the manifest.

This will prevent system owners to stay at an older version then the contract owner would prefer.

Kubernetes version?

Why hyperd when we have kubernetes ruling the world ? Will you provide a kube version of this ever ?

Unhandled promise rejection in logs

Jun  7 03:52:14 codiusd[4286]: (node:4314) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 34): Error: getaddrinfo ENOTFOUND codius.example.com codius.example.com:443
Jun  7 03:52:23 codiusd[4286]: (node:4314) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 39): Error: getaddrinfo ENOTFOUND codius.example.com codius.example.com:443
Jun  7 03:52:38 codiusd[4286]: (node:4314) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 47): Error: getaddrinfo ENOTFOUND codius.example.com codius.example.com:443

Seems to be due to a misconfigured node attempting to peer?

request: add last successful pod in /info

For diagnostics, but also status, it would be great if you can see when the last success pod has been run on the server. Perhaps even a total amount of contracts since start as well.

Feature Request: Add hyperd uptime to /info endpoint

If the main reliability index we need to be concerned with from a hosting standpiont is the availability of our contracts/hyperd, I think that hyperd uptime should be exposed along with serverUptime and serviceUptime in the codiusd /info endpoint.

If the codiusd service is down, restarted, etc, that should not affect running containers. We will inevitably have to restart codiusd to upgrade, so the uptime for the codiusd service metric may be a bit misleading.

Feature Request: Add list of pods to hosts, and add privacy settings to manifest

  • Adding an endpoint to list all pods by manifest hash would be a useful feature for people who want to analyze the codius network. It would also be useful for discovering where specific contracts are being run.

  • Some people might want to run a contract privately, especially during development. To address this, we can add an "unlisted" field to the manifest, which prevents this pod from being shown on the list of pods by hash. It would still be shown in the host operator's admin API and would still count towards their number of running contracts (or not; that's something I could go either way on)

  • Currently, if you call GET /pods?manifestHash=HASH, you'll get the manifest corresponding to HASH. You might not want this to be public, though. We should add a "privateManifest" field which disables that behavior when it's set to true.

Feature Request: Codius startup self test

  • At startup codiusd should run a self test that uploads a contract to itself to test that codiusd, moneyd, and hyperd are all working correctly.
  • Test should be run before peer discovery and responding to peer requests is enabled.
  • Test should retry itself x times before failure to ensure it passes if web sockets are configured.

Request: Put back fullMem as a number instead of a bool

With 1.1.0 you made fullMem a bool and it is now not possible to see the memory allocation anymore.

I would like to request that the value is put back for general knowledge about RAM capacity throughout the network. If its to have a variable for an easy check if the host is available, then i suggest adding a "available" variable.

Keep-alive in /pods upload

Codiusd doesn't have a timeout on incoming HTTP requests, but lots of them are timing out when the payment size is large or it takes a long time to pull images. This is because nginx returns a 504 when the upstream call takes too long to send data.

We could prevent this by having codiusd send a small amount of data on an interval in order to keep the connection alive. We could use the raw response stream in order to write some insignificant data (like whitespace) and then write the actual JSON response once the request is complete

TypeScript errors building latest master

On commit 7e3603d
Ran npm install --unsafe-perm

Relevant logs:

src/services/HyperClient.ts:36:7 - error TS2345: Argument of type '{ socketPath: string; method: string; url: string; params: { podName: string; }; responseType: st...' is not assignable to parameter of type 'AxiosRequestConfig'.
  Object literal may only specify known properties, and 'socketPath' does not exist in type 'AxiosRequestConfig'.

36       socketPath: this.config.hyperSock,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


src/services/HyperClient.ts:65:7 - error TS2345: Argument of type '{ socketPath: string; method: string; url: string; params: { imageName: string; }; }' is not assignable to parameter of type 'AxiosRequestConfig'.
  Object literal may only specify known properties, and 'socketPath' does not exist in type 'AxiosRequestConfig'.

65       socketPath: this.config.hyperSock,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


src/services/HyperClient.ts:77:7 - error TS2345: Argument of type '{ socketPath: string; method: string; url: string; data: PodSpec; }' is not assignable to parameter of type 'AxiosRequestConfig'.
  Object literal may only specify known properties, and 'socketPath' does not exist in type 'AxiosRequestConfig'.

77       socketPath: this.config.hyperSock,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


src/services/HyperClient.ts:90:7 - error TS2345: Argument of type '{ socketPath: string; method: string; url: string; params: { podId: string; }; }' is not assignable to parameter of type 'AxiosRequestConfig'.
  Object literal may only specify known properties, and 'socketPath' does not exist in type 'AxiosRequestConfig'.

90       socketPath: this.config.hyperSock,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


src/services/HyperClient.ts:109:7 - error TS2345: Argument of type '{ socketPath: string; method: string; url: string; params: { podId: string; }; }' is not assignable to parameter of type 'AxiosRequestConfig'.
  Object literal may only specify known properties, and 'socketPath' does not exist in type 'AxiosRequestConfig'.

109       socketPath: this.config.hyperSock,
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Feature Request: Provide Operational Metrics out of CodiusD in a Commonly Available, Standardized Format

Have CodiusD runtime support/expose streaming operational metrics related to application stack health (cpu,memory, disk, IO), intra-component communication, Interledger access, currency used in/out, etc. Generated metrics should be in a commonly available, open-source format such as Prometheus.

Purpose of feature request is to assist Codius Host providers in tuning and maintaining their service offering, as well as providing statistical proof of quality of services delivered. Will provide a method of determining the quality of Codius Hosting Service Providers for developers/entities prior to deploying Codius contracts.

Codiusd requires CODIUS_PUBLIC_URI to be set

Hello, I've installed my host, and it seems to be running but Codiusd is still showing problems:

/usr/lib/node_modules/codiusd/src/services/Config.ts:58 throw new Error('Codiusd requires CODIUS_PUBLIC_URI to be set') ^ Error: Codiusd requires CODIUS_PUBLIC_URI to be set at new Config (/usr/lib/node_modules/codiusd/src/services/Config.ts:58:13) at construct (/usr/lib/node_modules/codiusd/node_modules/reduct/index.ts:34:12) at reduct (/usr/lib/node_modules/codiusd/node_modules/reduct/index.ts:59:7) at new App (/usr/lib/node_modules/codiusd/src/services/App.ts:26:19) at construct (/usr/lib/node_modules/codiusd/node_modules/reduct/index.ts:34:12) at reduct (/usr/lib/node_modules/codiusd/node_modules/reduct/index.ts:59:7) at Object.<anonymous> (/usr/lib/node_modules/codiusd/src/index.ts:8:23) at Module._compile (internal/modules/cjs/loader.js:689:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10) at Module.load (internal/modules/cjs/loader.js:599:32)

This is my codiusd.serivce:

[Unit] Description=Codiusd After=network.target nss-lookup.target [Service] ExecStart=/usr/bin/npm start WorkingDirectory=/usr/lib/node_modules/codiusd Environment=DEBUG=* Environment=CODIUS_PUBLIC_URI=https://zodius.gaetanoherman.be Environment=CODIUS_XRP_PER_MONTH=10 Environment=CODIUS_MAX_MEMORY_FRACTION=0.97 Environment=CODIUS_ADDITIONAL_HOST_INFO=true Restart=always StandardOutput=syslog StandardError=syslog SyslogIdentifier=codiusd User=root Group=root [Install] WantedBy=multi-user.target

[email protected] error

2018-07-03T15:45:18.960Z connector:ccp-receiver[parent] debug route control message was rejected. rejection={"code":"F00","triggeredBy":"g.scylla","message":"cannot process route control messages from non-peers.","data":{"type":"Buffer","data":[]}}
2018-07-03T15:45:18.961Z connector:ccp-receiver[parent] debug failed to set route control information on peer. error=Error: route control message rejected.
at plugin.sendData.then.data (/usr/lib/moneyd-xrp/moneyd/node_modules/ilp-connector/src/routing/ccp-receiver.ts:174:17)

thank you

Feature request: Maintenance mode

Nice thing to see in codiusd - maintenance mode which stops codiusd from accepting new contracts, but all existing contracts continue to run. Once all existing contracts expire the server administrator can work on versions upgrade resource adding etc.

Hosts fail to process contracts when public vars are included but the private field is not defined

Hosts fail to process contracts whenever the public vars are defined but the private field is not included in the manifest. Here's the output from the Codius CLI:

codius-cli:uploadHandler Pod Upload failed Error: Request Failed +8s
Failed To Upload Pods to:
[ { error: 'Request Failed',
    host: 'https://codius.andros-connector.com',
    status: 500,
    statusText: 'Internal Server Error' } ]

The standard manifest schema does not require the private vars field to be specified, its entirely optional. The contract uploaded successfully when I added an empty private vars field. The upload also worked when the public and private vars fields were both left out.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.