duniter issueshttps://git.duniter.org/nodes/typescript/duniter/-/issues2018-01-27T07:27:44+01:00https://git.duniter.org/nodes/typescript/duniter/-/issues/1001Signature does not match2018-01-27T07:27:44+01:00Cédric MoreauSignature does not matchThis error seems to be raised by several nodes these days. However, if we copy the DB to another computer, then the issue cannot be reproduced. We can eventually reproduce the issue even when restarting the node, but the priviledged meth...This error seems to be raised by several nodes these days. However, if we copy the DB to another computer, then the issue cannot be reproduced. We can eventually reproduce the issue even when restarting the node, but the priviledged method to debug this issue is to debug with node-inspector + signal SIGUSR1.1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/999Command `start` does not work for g1-test2018-01-27T07:27:44+01:00Cédric MoreauCommand `start` does not work for g1-testI've tried to have a working g1-test node on duniter.org server, using Duniter sources. The `direct_start` command works very well, but not `start` command. Maybe this is linked to the fact I have 2 nodes on the same machine.I've tried to have a working g1-test node on duniter.org server, using Duniter sources. The `direct_start` command works very well, but not `start` command. Maybe this is linked to the fact I have 2 nodes on the same machine.1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/998Change install.sh2018-01-27T07:27:44+01:00Cédric MoreauChange install.shWe must replace the modules install lines:
```bash
$NODE $NPM install
$NODE $NPM install duniter-bma@@1.1.2 --save --production
$NODE $NPM install duniter-crawler@1.1.4 --save --production
$NODE $NPM install duniter-keypair@1.1.3 ...We must replace the modules install lines:
```bash
$NODE $NPM install
$NODE $NPM install duniter-bma@@1.1.2 --save --production
$NODE $NPM install duniter-crawler@1.1.4 --save --production
$NODE $NPM install duniter-keypair@1.1.3 --save --production
$NODE $NPM install duniter-prover@1.1.2 --save --production
$NODE $NPM install duniter-ui@1.1.5 --production --save
```
By:
```bash
$NODE $NPM install
$NODE -e "const deps = require('./package.json').peerDependencies; Object.keys(deps).forEach(k => console.log(k + \"@\" + deps[k]))" | xargs $NODE $NPM install --save --production
```1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/995Simulate next inclusion of newcomers2018-01-27T07:27:44+01:00Cédric MoreauSimulate next inclusion of newcomersWhen we look at https://g1-monit.elois.org/willMembers?lg=fr, we always wonder which combinations will be used by Duniter to include new members.
It would be useful to be able to simulate this, by fixing the medianTime value of curren...When we look at https://g1-monit.elois.org/willMembers?lg=fr, we always wonder which combinations will be used by Duniter to include new members.
It would be useful to be able to simulate this, by fixing the medianTime value of current block temporarily, not in the DB.
For example, with this command:
```bash
duniter gen-next --show --check --at 1495731720
```
This would simulate the next block with a simulation that our current `medianTime = 1495731720`, which is 2017/5/25 19:02:00.1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/994Sandbox pulling is too much frequent2018-01-27T07:27:44+01:00Cédric MoreauSandbox pulling is too much frequentAs said in #968. We could have only 1 sync / day, because the push mechanism should be enough. Also each time a node successfully pulls a new document, it shares it again through the push mechanism.
So 1 per day should really be enough.As said in #968. We could have only 1 sync / day, because the push mechanism should be enough. Also each time a node successfully pulls a new document, it shares it again through the push mechanism.
So 1 per day should really be enough.1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/993Cannot have `duniter` without `node-pre-gyp` module2018-01-27T07:27:44+01:00Cédric MoreauCannot have `duniter` without `node-pre-gyp` moduleFor example, this package.json does not work with `yarn`:
```json
{
"name": "hello-from-duniter",
"version": "1.0.1",
"main": "index.js",
"license": "MIT",
"dependencies": {
"duniter": "1.2.x"
}
}
```
```bas...For example, this package.json does not work with `yarn`:
```json
{
"name": "hello-from-duniter",
"version": "1.0.1",
"main": "index.js",
"license": "MIT",
"dependencies": {
"duniter": "1.2.x"
}
}
```
```bash
$ yarn
yarn install v0.24.5
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
error Couldn't find a package.json file in "/home/cgeek/dev/hello-from-duniter/node_modules/naclb/node_modules/node-pre-gyp"
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
```
The problem seems fixed in recent updates of `node-pre-gyp`: https://github.com/mapbox/node-pre-gyp/issues/2621.3.0Cédric MoreauCédric Moreauhttps://git.duniter.org/nodes/typescript/duniter/-/issues/992Change base58 lib2018-01-27T07:27:45+01:00Cédric MoreauChange base58 libToday we use an internal lib, the sources are in Duniter sources.
We may use an external one, such as https://github.com/cryptocoinjs/bs58.
We could put this library in `duniter-common` and export it.Today we use an internal lib, the sources are in Duniter sources.
We may use an external one, such as https://github.com/cryptocoinjs/bs58.
We could put this library in `duniter-common` and export it.1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/991Wrong loading with autoStack in a module2018-01-27T07:27:44+01:00Cédric MoreauWrong loading with autoStack in a moduleWhen we make a new module, depending on `duniter` and calling `duniter.statics.autoStack()`, the stack tries to find the modules in `node_modules/duniter/package.json` instead of local `package.json`.
This behavior could be fixed by a...When we make a new module, depending on `duniter` and calling `duniter.statics.autoStack()`, the stack tries to find the modules in `node_modules/duniter/package.json` instead of local `package.json`.
This behavior could be fixed by adding a 2nd parameter to autoStack(), giving the directory where to look at:
```js
autoStack: (priorityModules, dir) => {
const pjson = require(path.join(dir || __dirname, './package.json'));
// [...]
}
```
And on the call side:
```js
const stack = require('duniter').statics.autoStack([{
name: 'duniter-hello',
required: require('./index')
}], __dirname)
```
Or with #989:
```js
require('duniter').statics.quickRun(__dirname, './index.js')
```1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/990Cannot use duniter without duniter-keypair2018-01-27T07:27:44+01:00Cédric MoreauCannot use duniter without duniter-keypairAs of duniter@1.2.x we cannot create a new module and just have `duniter` as dependency. We must add `duniter-keypair` because Duniter does not have a default keyring, but **must** have one to work.
We could create a default one if no...As of duniter@1.2.x we cannot create a new module and just have `duniter` as dependency. We must add `duniter-keypair` because Duniter does not have a default keyring, but **must** have one to work.
We could create a default one if none is provided by a module, for example using https://github.com/davidbau/seedrandom to generate it randomly.
Of course the keyring will be different on each run, but that's the expected behavior: to have a persistent keyring, we must add a module doing this work like `duniter-keyring`. But this is not mandatory for Duniter to work.1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/989Add a "quickRun" method in duniter API2018-01-27T07:27:44+01:00Cédric MoreauAdd a "quickRun" method in duniter APIWhen making a Duniter module, for testing it, we always have to create a `run.js` file with the same boring code:
```js
"use strict"
const co = require('co')
const stack = require('duniter').statics.autoStack([{
name: 'duniter...When making a Duniter module, for testing it, we always have to create a `run.js` file with the same boring code:
```js
"use strict"
const co = require('co')
const stack = require('duniter').statics.autoStack([{
name: 'duniter-prover',
required: require('./index')
}])
co(function*() {
try {
yield stack.executeStack(process.argv)
} catch(e) {
console.error(e)
}
process.exit()
})
```
We could have some shortcut of it, wrapping above code:
```js
require('duniter').statics.quickRun('./index.js')
```1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/988Sync: also sync the sandboxes2018-01-27T07:27:44+01:00Cédric MoreauSync: also sync the sandboxesWe can trigger a sandbox pulling at the end of the sync, just after the peers for example.We can trigger a sandbox pulling at the end of the sync, just after the peers for example.1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/987Remove "dl starts" logs2018-01-27T07:27:44+01:00Cédric MoreauRemove "dl starts" logs1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/986Modules: duniter should be a peerDependency2018-01-27T07:27:44+01:00Cédric MoreauModules: duniter should be a peerDependencyAccording to [this article on Node.js blog](https://nodejs.org/en/blog/npm/peer-dependencies/), I understand that any Duniter module should have:
```json
{
"name": "duniter-module",
"peerDependencies": {
"duniter": "^1.3.0...According to [this article on Node.js blog](https://nodejs.org/en/blog/npm/peer-dependencies/), I understand that any Duniter module should have:
```json
{
"name": "duniter-module",
"peerDependencies": {
"duniter": "^1.3.0"
}
}
```
But also, we should have certain modules as peerDependencies of Duniter:
```json
{
"name": "duniter",
"peerDependencies": {
"duniter-common": "^1.3.0",
"duniter-keypair": "^1.3.0",
"duniter-bma": "^1.3.0",
"duniter-crawler": "^1.3.0",
"duniter-prover": "^1.3.0",
"duniter-ui": "^1.3.0"
}
}
```1.3.0Cédric MoreauCédric Moreauhttps://git.duniter.org/nodes/typescript/duniter/-/issues/985Transaction history: wrong match with the pubkey2018-01-27T07:27:44+01:00Cédric MoreauTransaction history: wrong match with the pubkeySee https://github.com/duniter/sakia/issues/696.
The `SindexDAL` should make a perfect match with `=` sign.See https://github.com/duniter/sakia/issues/696.
The `SindexDAL` should make a perfect match with `=` sign.1.3.0Cédric MoreauCédric Moreauhttps://git.duniter.org/nodes/typescript/duniter/-/issues/984Restart ĞTest with 1.3.02018-01-27T07:27:44+01:00Cédric MoreauRestart ĞTest with 1.3.01.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/982Publish the announce of 1.3.0 on the blog2018-01-27T07:27:44+01:00Cédric MoreauPublish the announce of 1.3.0 on the blogFrom now on, the new versions will be displayed on the blog:
* https://duniter.org/fr
* https://duniter.org/en (when the site is ready)From now on, the new versions will be displayed on the blog:
* https://duniter.org/fr
* https://duniter.org/en (when the site is ready)1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/977Move fast block appliance to duniter core2018-01-27T07:27:44+01:00Cédric MoreauMove fast block appliance to duniter coreCurrently the fast appliance logic is in duniter-crawler, but that's a flaw: if this module implements incorrectly the duniter core rules, all the network might have inconsistencies.
It is better to give this work to duniter core.Currently the fast appliance logic is in duniter-crawler, but that's a flaw: if this module implements incorrectly the duniter core rules, all the network might have inconsistencies.
It is better to give this work to duniter core.1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/972Many [object Object] on WoT crawling2018-01-27T07:27:45+01:00Cédric MoreauMany [object Object] on WoT crawling*Created by: M5oul*
```bash
2017-05-10T19:33:39+02:00 - info: ⬇ CERT ArcfiCb3FWBonodGtiznCdBdCH5EJTLUdAFHR4nRM4zf block#13785 -> florck
2017-05-10T19:33:39+02:00 - info: ✘ CERT ArcfiCb3FWBonodGtiznCdBdCH5EJTLUdAFHR4nRM4zf [object Obje...*Created by: M5oul*
```bash
2017-05-10T19:33:39+02:00 - info: ⬇ CERT ArcfiCb3FWBonodGtiznCdBdCH5EJTLUdAFHR4nRM4zf block#13785 -> florck
2017-05-10T19:33:39+02:00 - info: ✘ CERT ArcfiCb3FWBonodGtiznCdBdCH5EJTLUdAFHR4nRM4zf [object Object]
2017-05-10T19:33:39+02:00 - info: ⬇ CERT 4DVWFcDQFm6XEkz56HPFYX7QA8QW2z4pxsJhmUpWw94W block#13908 -> florck
2017-05-10T19:33:39+02:00 - info: ✘ CERT 4DVWFcDQFm6XEkz56HPFYX7QA8QW2z4pxsJhmUpWw94W [object Object]
2017-05-10T19:33:40+02:00 - info: ⬇ IDTY 3BTGo9e1KtHfgHQSEXvyie8RBGDtgSMuGaB8EVAc5GeK Ekiben
2017-05-10T19:33:40+02:00 - info: ⬇ CERT 5kpscasQx9p45TXJxtGV17G1Fw9URmMeqouz3x8FNYpB block#15221 -> Ekiben
2017-05-10T19:33:40+02:00 - info: ✘ CERT 5kpscasQx9p45TXJxtGV17G1Fw9URmMeqouz3x8FNYpB [object Object]
2017-05-10T19:33:40+02:00 - info: ⬇ CERT 5kpscasQx9p45TXJxtGV17G1Fw9URmMeqouz3x8FNYpB block#15228 -> Ekiben
2017-05-10T19:33:40+02:00 - info: ✘ CERT 5kpscasQx9p45TXJxtGV17G1Fw9URmMeqouz3x8FNYpB [object Object]
2017-05-10T19:33:40+02:00 - info: ⬇ CERT 5kpscasQx9p45TXJxtGV17G1Fw9URmMeqouz3x8FNYpB block#15247 -> Ekiben
2017-05-10T19:33:40+02:00 - info: ✘ CERT 5kpscasQx9p45TXJxtGV17G1Fw9URmMeqouz3x8FNYpB [object Object]
2017-05-10T19:33:40+02:00 - info: ⬇ CERT 5kpscasQx9p45TXJxtGV17G1Fw9URmMeqouz3x8FNYpB block#15416 -> Ekiben
2017-05-10T19:33:40+02:00 - info: ✘ CERT 5kpscasQx9p45TXJxtGV17G1Fw9URmMeqouz3x8FNYpB [object Object]
2017-05-10T19:33:40+02:00 - info: ⬇ CERT EhjcQYHFyFU4wzznaaNvjibKbkpWwtjEQrLTXZuPf9wK block#15627 -> Ekiben
2017-05-10T19:33:40+02:00 - info: ✘ CERT EhjcQYHFyFU4wzznaaNvjibKbkpWwtjEQrLTXZuPf9wK [object Object]
2017-05-10T19:33:41+02:00 - info: ⬇ CERT 5WD4WSHE96ySreSwQFXPqaKaKcwboRNApiPHjPWB6V9C block#15653 -> Ekiben
2017-05-10T19:33:41+02:00 - info: ✘ CERT 5WD4WSHE96ySreSwQFXPqaKaKcwboRNApiPHjPWB6V9C [object Object]
2017-05-10T19:33:46+02:00 - info: ⬇ 3BTGo9e1KtHfgHQSEXvyie8RBGDtgSMuGaB8EVAc5GeK IN
2017-05-10T19:33:46+02:00 - info: ⬇ IDTY GwhyPg6tiESpArzQ2oXXNq7aHPFwBHxp21Eqkf2fvRQV YanickChareille
2017-05-10T19:33:46+02:00 - info: ⬇ CERT 4iwyu6St2K7K4TrsbS7JvjUqT2ndw1vXFXWE3ttki6uk block#15377 -> YanickChareille
2017-05-10T19:33:46+02:00 - info: ✘ CERT 4iwyu6St2K7K4TrsbS7JvjUqT2ndw1vXFXWE3ttki6uk [object Object]
2017-05-10T19:33:46+02:00 - info: ⬇ CERT 78jhpprYkMNF6i5kQPXfkAVBpd2aqcpieNsXTSW4c21f block#15524 -> YanickChareille
2017-05-10T19:33:46+02:00 - info: ✘ CERT 78jhpprYkMNF6i5kQPXfkAVBpd2aqcpieNsXTSW4c21f [object Object]
2017-05-10T19:33:46+02:00 - info: ⬇ CERT 38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE block#15825 -> YanickChareille
2017-05-10T19:33:46+02:00 - info: ✘ CERT 38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE [object Object]
2017-05-10T19:33:47+02:00 - info: ⬇ CERT 79XB4UPxMJsURb2PbiKQDAEUH6fV557ZuS6Nin2pp7ji block#17097 -> YanickChareille
2017-05-10T19:33:47+02:00 - info: ✘ CERT 79XB4UPxMJsURb2PbiKQDAEUH6fV557ZuS6Nin2pp7ji [object Object]
```1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/969Add a `--slow` option for `sync` command2018-01-27T07:27:45+01:00Cédric MoreauAdd a `--slow` option for `sync` commandOn very low connections (< 100 Kb/s), the sync will likely fail at some point.
But it could work if the number of download slots was limited to 1. I've tested it, it works.
Also, there is a bug on local storage of downloaded chunks...On very low connections (< 100 Kb/s), the sync will likely fail at some point.
But it could work if the number of download slots was limited to 1. I've tested it, it works.
Also, there is a bug on local storage of downloaded chunks: they are not stored on a brand new installation, so when the download eventually fail, we have to start the whole download again.
Diagnostic: replace `localNumber == 0` by `localNumber <= 0` in the `downloadChunk` function.1.3.0https://git.duniter.org/nodes/typescript/duniter/-/issues/962.deb mauvaise description du package2018-01-27T07:27:44+01:00Cédric Moreau.deb mauvaise description du package*Created by: sachaz*
dpkg -i **duniter-server-v1.2.2-linux-x64.deb**
root@duniter:~# dpkg -l duniter
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=att...*Created by: sachaz*
dpkg -i **duniter-server-v1.2.2-linux-x64.deb**
root@duniter:~# dpkg -l duniter
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
|/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
||/ Nom Version Architecture Description
+++-================================-=====================-=====================-======================================================================
ii duniter 1.2.2 all **Duniter desktop version**
1.3.0