GithubHelp home page GithubHelp logo

cryptocoinjs / eckey Goto Github PK

View Code? Open in Web Editor NEW
17.0 17.0 14.0 90 KB

A JavaScript component for Eliptical curve cryptography for crypto currencies such as Litecoin and Bitcoin

License: MIT License

JavaScript 100.00%

eckey's People

Contributors

creativejoe007 avatar danacr avatar dominictarr avatar fanatid avatar jprichardson avatar junderw avatar midnightlightning avatar shesek avatar sidazhang avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

eckey's Issues

Transition from convert-hex to binstring

We decided to move away from convert-hex and convert-string being separate libraries and merge them into binstring. This module needs to move away from convert-hex to binstring.

Yarn nor NPM seem to be reflecting latest changes

Hey everyone. Thank you for having updated the repo. I was struggling to get it to work when I updated my electron version, but I was able to find out your latest pr.

Is there anyway the version can be updated to 1.0.1 so that yarn recognizes it? if I run yarn install eckey it just downloads the regular package 1.0, without the latest changes.

If I run yarn add https://github.com/cryptocoinjs/eckey it does download the updated code, but since another package depends on 1.0.0 it becomes a mess. Thank you!

Private key [1, n - 1] range

Hi. Sorry for the stupid question.
Wikipedia article on ECDSA says that dA (private key) must be in the interval [1, n - 1] (n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141 for secp256k1) but I can't find any checkings inside the library to ensure that given private key is in this range. Does it mean that library user should check it by himself?

I took a glance at another ECDSA implementation and it provides this checkings but the result of getting public key from private key = 2^256 - 1 tends to be the same.

Your great article also mentions this problem:

You'll notice that we generate 32 random values. And n does not have a maximum of 2^256โˆ’1, so it's theoretically possible to generate a key larger than the standard dictates. However, in practice, you really don't have to worry about it.

but doesn't elaborate it further. Could you please explain it? Thanks.

More explicit setting of testnet / prod net

I feel like that since this library is meant to be a low level library so developers to build applications on top of. We should not put too many layers of abstraction over it.

https://github.com/cryptocoinjs/eckey/blob/master/lib/eckey.js#L74

When using this library in production, if i do

new ECKey('SomeTestnetPrivKey')

Should not be able sucessfully parse the string, I think we shouldn't automatically detect whether it is testnet or mainnet key, and rather let user to specify and inform the user if a testnet key somehow got into the mainnet environment.

Retarget for just NodeJS and Browserify

We decided to focus on NodeJS as primary environment, utilizing Browserify to make components browser-friendly. This module still needs to be stripped of the extra interface boilerplate to make that transition.

doesn't install: npm ERR! 404 'cryptocoin-base58' is not in the npm registry

here is the npm-debug.
looks like there is more than one lib that is not on npm.

0 info it worked if it ends with ok
1 verbose cli [ 'node', '/usr/bin/npm', 'install' ]
2 info using [email protected]
3 info using [email protected]
4 verbose readDependencies using package.json deps
5 verbose install where, deps [ '/home/dominic/c/eckey',
5 verbose install   [ 'ecurve',
5 verbose install     'ecurve-names',
5 verbose install     'sha256',
5 verbose install     'ripemd160',
5 verbose install     'convert-hex',
5 verbose install     'btc-address',
5 verbose install     'ecdsa',
5 verbose install     'bigi',
5 verbose install     'bs58',
5 verbose install     'mocha',
5 verbose install     'terst' ] ]
6 info preinstall [email protected]
7 verbose readDependencies using package.json deps
8 verbose already installed skipping [email protected] /home/dominic/c/eckey
9 verbose cache add [ '[email protected]', null ]
10 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null]
11 verbose parsed url { protocol: null,
11 verbose parsed url   slashes: null,
11 verbose parsed url   auth: null,
11 verbose parsed url   host: null,
11 verbose parsed url   port: null,
11 verbose parsed url   hostname: null,
11 verbose parsed url   hash: null,
11 verbose parsed url   search: null,
11 verbose parsed url   query: null,
11 verbose parsed url   pathname: '[email protected]',
11 verbose parsed url   path: '[email protected]',
11 verbose parsed url   href: '[email protected]' }
12 verbose cache add name="ecurve" spec="0.1.x" args=["ecurve","0.1.x"]
13 verbose parsed url { protocol: null,
13 verbose parsed url   slashes: null,
13 verbose parsed url   auth: null,
13 verbose parsed url   host: null,
13 verbose parsed url   port: null,
13 verbose parsed url   hostname: null,
13 verbose parsed url   hash: null,
13 verbose parsed url   search: null,
13 verbose parsed url   query: null,
13 verbose parsed url   pathname: '0.1.x',
13 verbose parsed url   path: '0.1.x',
13 verbose parsed url   href: '0.1.x' }
14 verbose addNamed [ 'ecurve', '0.1.x' ]
15 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ]
16 verbose cache add [ '[email protected]', null ]
17 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null]
18 verbose parsed url { protocol: null,
18 verbose parsed url   slashes: null,
18 verbose parsed url   auth: null,
18 verbose parsed url   host: null,
18 verbose parsed url   port: null,
18 verbose parsed url   hostname: null,
18 verbose parsed url   hash: null,
18 verbose parsed url   search: null,
18 verbose parsed url   query: null,
18 verbose parsed url   pathname: '[email protected]',
18 verbose parsed url   path: '[email protected]',
18 verbose parsed url   href: '[email protected]' }
19 verbose cache add name="ecurve-names" spec="0.1.x" args=["ecurve-names","0.1.x"]
20 verbose parsed url { protocol: null,
20 verbose parsed url   slashes: null,
20 verbose parsed url   auth: null,
20 verbose parsed url   host: null,
20 verbose parsed url   port: null,
20 verbose parsed url   hostname: null,
20 verbose parsed url   hash: null,
20 verbose parsed url   search: null,
20 verbose parsed url   query: null,
20 verbose parsed url   pathname: '0.1.x',
20 verbose parsed url   path: '0.1.x',
20 verbose parsed url   href: '0.1.x' }
21 verbose addNamed [ 'ecurve-names', '0.1.x' ]
22 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ]
23 verbose already installed skipping [email protected] /home/dominic/c/eckey
24 silly lockFile 564b5415-ecurve-0-1-x [email protected]
25 verbose lock [email protected] /home/dominic/.npm/564b5415-ecurve-0-1-x.lock
26 silly lockFile 4a302f60-ecurve-names-0-1-x [email protected]
27 verbose lock [email protected] /home/dominic/.npm/4a302f60-ecurve-names-0-1-x.lock
28 verbose already installed skipping [email protected] /home/dominic/c/eckey
29 verbose cache add [ '[email protected]', null ]
30 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null]
31 verbose parsed url { protocol: null,
31 verbose parsed url   slashes: null,
31 verbose parsed url   auth: null,
31 verbose parsed url   host: null,
31 verbose parsed url   port: null,
31 verbose parsed url   hostname: null,
31 verbose parsed url   hash: null,
31 verbose parsed url   search: null,
31 verbose parsed url   query: null,
31 verbose parsed url   pathname: '[email protected]',
31 verbose parsed url   path: '[email protected]',
31 verbose parsed url   href: '[email protected]' }
32 verbose cache add name="btc-address" spec="0.1.x" args=["btc-address","0.1.x"]
33 verbose parsed url { protocol: null,
33 verbose parsed url   slashes: null,
33 verbose parsed url   auth: null,
33 verbose parsed url   host: null,
33 verbose parsed url   port: null,
33 verbose parsed url   hostname: null,
33 verbose parsed url   hash: null,
33 verbose parsed url   search: null,
33 verbose parsed url   query: null,
33 verbose parsed url   pathname: '0.1.x',
33 verbose parsed url   path: '0.1.x',
33 verbose parsed url   href: '0.1.x' }
34 verbose addNamed [ 'btc-address', '0.1.x' ]
35 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ]
36 silly lockFile fb1fc0ac-btc-address-0-1-x [email protected]
37 verbose lock [email protected] /home/dominic/.npm/fb1fc0ac-btc-address-0-1-x.lock
38 verbose cache add [ '[email protected]', null ]
39 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null]
40 verbose parsed url { protocol: null,
40 verbose parsed url   slashes: null,
40 verbose parsed url   auth: null,
40 verbose parsed url   host: null,
40 verbose parsed url   port: null,
40 verbose parsed url   hostname: null,
40 verbose parsed url   hash: null,
40 verbose parsed url   search: null,
40 verbose parsed url   query: null,
40 verbose parsed url   pathname: '[email protected]',
40 verbose parsed url   path: '[email protected]',
40 verbose parsed url   href: '[email protected]' }
41 verbose cache add name="ecdsa" spec="0.2.x" args=["ecdsa","0.2.x"]
42 verbose parsed url { protocol: null,
42 verbose parsed url   slashes: null,
42 verbose parsed url   auth: null,
42 verbose parsed url   host: null,
42 verbose parsed url   port: null,
42 verbose parsed url   hostname: null,
42 verbose parsed url   hash: null,
42 verbose parsed url   search: null,
42 verbose parsed url   query: null,
42 verbose parsed url   pathname: '0.2.x',
42 verbose parsed url   path: '0.2.x',
42 verbose parsed url   href: '0.2.x' }
43 verbose addNamed [ 'ecdsa', '0.2.x' ]
44 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
45 silly lockFile 3c6ddae0-ecdsa-0-2-x [email protected]
46 verbose lock [email protected] /home/dominic/.npm/3c6ddae0-ecdsa-0-2-x.lock
47 verbose already installed skipping bigi@~0.2.0 /home/dominic/c/eckey
48 verbose already installed skipping bs58@~0.2.0 /home/dominic/c/eckey
49 verbose already installed skipping mocha@1.* /home/dominic/c/eckey
50 verbose already installed skipping [email protected] /home/dominic/c/eckey
51 silly addNameRange { name: 'ecurve', range: '>=0.1.0-0 <0.2.0-0', hasData: false }
52 silly addNameRange { name: 'ecurve-names',
52 silly addNameRange   range: '>=0.1.0-0 <0.2.0-0',
52 silly addNameRange   hasData: false }
53 silly addNameRange { name: 'btc-address',
53 silly addNameRange   range: '>=0.1.0-0 <0.2.0-0',
53 silly addNameRange   hasData: false }
54 silly addNameRange { name: 'ecdsa', range: '>=0.2.0-0 <0.3.0-0', hasData: false }
55 verbose url raw ecurve
56 verbose url resolving [ 'https://registry.npmjs.org/', './ecurve' ]
57 verbose url resolved https://registry.npmjs.org/ecurve
58 info trying registry request attempt 1 at 18:27:53
59 verbose etag "BAVY2AFI5PFX9YFOYTMMR66LO"
60 http GET https://registry.npmjs.org/ecurve
61 verbose url raw ecurve-names
62 verbose url resolving [ 'https://registry.npmjs.org/', './ecurve-names' ]
63 verbose url resolved https://registry.npmjs.org/ecurve-names
64 info trying registry request attempt 1 at 18:27:53
65 verbose etag "2BR5D4R988VFPZA68K43L9WX1"
66 http GET https://registry.npmjs.org/ecurve-names
67 verbose url raw btc-address
68 verbose url resolving [ 'https://registry.npmjs.org/', './btc-address' ]
69 verbose url resolved https://registry.npmjs.org/btc-address
70 info trying registry request attempt 1 at 18:27:53
71 verbose etag "3FQS539I1KQQ2Q4MVZBOL9C1T"
72 http GET https://registry.npmjs.org/btc-address
73 verbose url raw ecdsa
74 verbose url resolving [ 'https://registry.npmjs.org/', './ecdsa' ]
75 verbose url resolved https://registry.npmjs.org/ecdsa
76 info trying registry request attempt 1 at 18:27:53
77 verbose etag "A2EI2XRUFMPNEKCNAVV3Z9MKS"
78 http GET https://registry.npmjs.org/ecdsa
79 http 304 https://registry.npmjs.org/ecdsa
80 silly registry.get cb [ 304,
80 silly registry.get   { date: 'Sun, 19 Jan 2014 11:26:52 GMT',
80 silly registry.get     server: 'Apache',
80 silly registry.get     connection: 'Keep-Alive',
80 silly registry.get     'keep-alive': 'timeout=10, max=50',
80 silly registry.get     etag: '"A2EI2XRUFMPNEKCNAVV3Z9MKS"',
80 silly registry.get     vary: 'Accept' } ]
81 verbose etag ecdsa from cache
82 silly addNameRange number 2 { name: 'ecdsa', range: '>=0.2.0-0 <0.3.0-0', hasData: true }
83 silly addNameRange versions [ 'ecdsa', [ '0.1.0', '0.2.0', '0.3.0' ] ]
84 verbose addNamed [ 'ecdsa', '0.2.0' ]
85 verbose addNamed [ '0.2.0', '0.2.0' ]
86 silly lockFile 6649604a-ecdsa-0-2-0 [email protected]
87 verbose lock [email protected] /home/dominic/.npm/6649604a-ecdsa-0-2-0.lock
88 silly lockFile 6649604a-ecdsa-0-2-0 [email protected]
89 silly lockFile 6649604a-ecdsa-0-2-0 [email protected]
90 silly lockFile 3c6ddae0-ecdsa-0-2-x [email protected]
91 silly lockFile 3c6ddae0-ecdsa-0-2-x [email protected]
92 http 304 https://registry.npmjs.org/ecurve
93 silly registry.get cb [ 304,
93 silly registry.get   { date: 'Sun, 19 Jan 2014 11:27:02 GMT',
93 silly registry.get     server: 'Apache',
93 silly registry.get     connection: 'Keep-Alive',
93 silly registry.get     'keep-alive': 'timeout=10, max=50',
93 silly registry.get     etag: '"BAVY2AFI5PFX9YFOYTMMR66LO"',
93 silly registry.get     vary: 'Accept' } ]
94 verbose etag ecurve from cache
95 silly addNameRange number 2 { name: 'ecurve', range: '>=0.1.0-0 <0.2.0-0', hasData: true }
96 silly addNameRange versions [ 'ecurve', [ '0.1.0', '0.2.0' ] ]
97 verbose addNamed [ 'ecurve', '0.1.0' ]
98 verbose addNamed [ '0.1.0', '0.1.0' ]
99 silly lockFile 75cfa2dc-ecurve-0-1-0 [email protected]
100 verbose lock [email protected] /home/dominic/.npm/75cfa2dc-ecurve-0-1-0.lock
101 silly lockFile 75cfa2dc-ecurve-0-1-0 [email protected]
102 silly lockFile 75cfa2dc-ecurve-0-1-0 [email protected]
103 silly lockFile 564b5415-ecurve-0-1-x [email protected]
104 silly lockFile 564b5415-ecurve-0-1-x [email protected]
105 http 304 https://registry.npmjs.org/ecurve-names
106 silly registry.get cb [ 304,
106 silly registry.get   { date: 'Sun, 19 Jan 2014 11:27:04 GMT',
106 silly registry.get     server: 'Apache',
106 silly registry.get     connection: 'Keep-Alive',
106 silly registry.get     'keep-alive': 'timeout=10, max=50',
106 silly registry.get     etag: '"2BR5D4R988VFPZA68K43L9WX1"',
106 silly registry.get     vary: 'Accept' } ]
107 verbose etag ecurve-names from cache
108 silly addNameRange number 2 { name: 'ecurve-names',
108 silly addNameRange   range: '>=0.1.0-0 <0.2.0-0',
108 silly addNameRange   hasData: true }
109 silly addNameRange versions [ 'ecurve-names', [ '0.1.0', '0.1.1', '0.2.0' ] ]
110 verbose addNamed [ 'ecurve-names', '0.1.1' ]
111 verbose addNamed [ '0.1.1', '0.1.1' ]
112 silly lockFile ea101506-ecurve-names-0-1-1 [email protected]
113 verbose lock [email protected] /home/dominic/.npm/ea101506-ecurve-names-0-1-1.lock
114 http 304 https://registry.npmjs.org/btc-address
115 silly registry.get cb [ 304,
115 silly registry.get   { date: 'Sun, 19 Jan 2014 11:27:04 GMT',
115 silly registry.get     server: 'Apache',
115 silly registry.get     connection: 'Keep-Alive',
115 silly registry.get     'keep-alive': 'timeout=10, max=50',
115 silly registry.get     etag: '"3FQS539I1KQQ2Q4MVZBOL9C1T"',
115 silly registry.get     vary: 'Accept' } ]
116 verbose etag btc-address from cache
117 silly addNameRange number 2 { name: 'btc-address',
117 silly addNameRange   range: '>=0.1.0-0 <0.2.0-0',
117 silly addNameRange   hasData: true }
118 silly addNameRange versions [ 'btc-address', [ '0.1.0', '0.2.0' ] ]
119 verbose addNamed [ 'btc-address', '0.1.0' ]
120 verbose addNamed [ '0.1.0', '0.1.0' ]
121 silly lockFile dd5dbc9c-btc-address-0-1-0 [email protected]
122 verbose lock [email protected] /home/dominic/.npm/dd5dbc9c-btc-address-0-1-0.lock
123 silly lockFile ea101506-ecurve-names-0-1-1 [email protected]
124 silly lockFile ea101506-ecurve-names-0-1-1 [email protected]
125 silly lockFile 4a302f60-ecurve-names-0-1-x [email protected]
126 silly lockFile 4a302f60-ecurve-names-0-1-x [email protected]
127 silly lockFile dd5dbc9c-btc-address-0-1-0 [email protected]
128 silly lockFile dd5dbc9c-btc-address-0-1-0 [email protected]
129 silly lockFile fb1fc0ac-btc-address-0-1-x [email protected]
130 silly lockFile fb1fc0ac-btc-address-0-1-x [email protected]
131 silly resolved [ { name: 'ecdsa',
131 silly resolved     version: '0.2.0',
131 silly resolved     description: 'Elliptical Curve Cryptography Digital Signing',
131 silly resolved     keywords:
131 silly resolved      [ 'cryptography',
131 silly resolved        'crypto',
131 silly resolved        'bitcoin',
131 silly resolved        'litecoin',
131 silly resolved        'elliptical',
131 silly resolved        'curve',
131 silly resolved        'digital',
131 silly resolved        'sign',
131 silly resolved        'signing' ],
131 silly resolved     devDependencies:
131 silly resolved      { mocha: '1.*',
131 silly resolved        terst: '0.0.1',
131 silly resolved        sha256: '~0.1.0',
131 silly resolved        'secure-random': '0.0.1' },
131 silly resolved     repository: { url: 'https://github.com/cryptocoinjs/ecdsa', type: 'git' },
131 silly resolved     main: './lib/ecdsa.js',
131 silly resolved     dependencies:
131 silly resolved      { 'cryptocoin-bigint': '~0.1.0',
131 silly resolved        ecurve: '~0.1.0',
131 silly resolved        'ecurve-names': '~0.1.1',
131 silly resolved        'secure-random': '0.0.x' },
131 silly resolved     readme: 'ecdsa\n======\n\nJavaScript component to Elliptical Curve Cryptography signing and verify.\n\n\nSee this article for more details: [bitcoin address](http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript).\n\n\n\nInstall\n-------\n\n### Node.js/Browserify\n\n    npm install --save ecdsa\n\n### Component\n\n    component install cryptocoinjs/ecdsa\n\n\n### Bower\n\n    bower install ecdsa\n\n\n### Script\n\n```html\n<script src="/path/to/ecdsa.js"></script>\n```\n\n\nExample\n-------\n\n```js\nvar ecdsa = require(\'../lib/ecdsa\')\n  , sha256 = require(\'sha256\')\n  , secureRandom = require(\'secure-random\')\n  , ecparams = require(\'ecurve-names\')(\'secp256k1\')\n  , BigInteger = require(\'cryptocoin-bigint\')\n\nvar randArr = secureRandom(32, {array: true})\nvar privKey = BigInteger.fromByteArrayUnsigned(randArr)\n//var privKey = ecdsa.getBigRandom(ecparams.getN())\nvar pubPoint = ecparams.getG().multiply(privKey)\nvar pubKey = pubPoint.getEncoded(false) //true => compressed, fails though, must investigate\nvar msg = "hello world!"\nvar shaMsg = sha256(msg)\nvar signature = ecdsa.sign(shaMsg, privKey)\nvar isValid = ecdsa.verify(shaMsg, signature, pubKey)\nconsole.log(isValid) //true\n```\n\n\nCredits\n-------\n\nIt\'s not clear to me if this is based upon Tom Wu\'s work or Stefen Thomas. \n\n\n\n',
131 silly resolved     readmeFilename: 'README.md',
131 silly resolved     bugs: { url: 'https://github.com/cryptocoinjs/ecdsa/issues' },
131 silly resolved     homepage: 'https://github.com/cryptocoinjs/ecdsa',
131 silly resolved     _id: '[email protected]',
131 silly resolved     _from: '[email protected]' },
131 silly resolved   { name: 'ecurve',
131 silly resolved     version: '0.1.0',
131 silly resolved     description: 'Elliptic curve cryptography',
131 silly resolved     keywords:
131 silly resolved      [ 'cryptography',
131 silly resolved        'crypto',
131 silly resolved        'bitcoin',
131 silly resolved        'litecoin',
131 silly resolved        'eliptical',
131 silly resolved        'curve' ],
131 silly resolved     devDependencies: { mocha: '1.*', terst: '0.0.1' },
131 silly resolved     repository: { url: 'https://github.com/cryptocoinjs/ecurve', type: 'git' },
131 silly resolved     main: './lib/ecurve.js',
131 silly resolved     dependencies: { 'cryptocoin-bigint': '0.1.x' },
131 silly resolved     readme: 'ecc\n===\n\nJavaScript component to [Elliptical Curve Cryptography]().\n\nSee this article for more details: [bitcoin address](http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript).\n\n\n\nInstall\n-------\n\n### Node.js/Browserify\n\n    npm install --save ecurve\n\n### Component\n\n    component install cryptocoinjs/ecurve\n\n\n### Bower\n\n    bower install ecurve\n\n\n### Script\n\n```html\n<script src="/path/to/ecurve.js"></script>\n```\n\n\nUsage\n-----\n\nhttp://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript\n\n\nCredits\n-------\n\nIt\'s not clear to me if this is based upon Tom Wu\'s work or Stefen Thomas. \n\n\n\n',
131 silly resolved     readmeFilename: 'README.md',
131 silly resolved     bugs: { url: 'https://github.com/cryptocoinjs/ecurve/issues' },
131 silly resolved     homepage: 'https://github.com/cryptocoinjs/ecurve',
131 silly resolved     _id: '[email protected]',
131 silly resolved     _from: '[email protected]' },
131 silly resolved   { name: 'ecurve-names',
131 silly resolved     version: '0.1.1',
131 silly resolved     description: 'Elliptical Curve Cryptography Named Parameters',
131 silly resolved     keywords:
131 silly resolved      [ 'cryptography',
131 silly resolved        'crypto',
131 silly resolved        'bitcoin',
131 silly resolved        'litecoin',
131 silly resolved        'eliptical',
131 silly resolved        'curve' ],
131 silly resolved     devDependencies: { mocha: '1.*', terst: '0.0.1' },
131 silly resolved     repository:
131 silly resolved      { url: 'https://github.com/cryptocoinjs/ecurve-names',
131 silly resolved        type: 'git' },
131 silly resolved     main: './lib/ecurve-names.js',
131 silly resolved     dependencies: { 'cryptocoin-bigint': '0.1.x', ecurve: '0.1.x' },
131 silly resolved     readme: 'ecc-named\n=========\n\nJavaScript component to [Elliptical Curve Cryptography]() named parameters from http://www.secg.org/collateral/sec2_final.pdf\n\nAMD/CommonJS compatible.\n\nSee this article for more details: [bitcoin address](http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript).\n\n\n\nInstall\n-------\n\n### Node.js/Browserify\n\n    npm install --save ecurve-names\n\n### Component\n\n    component install ecurve-names\n\n\n### Bower\n\n    bower install ecurve-names\n\n\n### Script\n\n```html\n<script src="/path/to/ecurve-names.js"></script>\n```\n\n\nUsage\n-----\n\nhttp://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript\n\n```js\nvar getSECCurveByName = require(\'ecurve-names\')\n```\n\n\nCredits\n-------\n\nIt\'s not clear to me if this is based upon Tom Wu\'s work or Stefen Thomas. \n\n\n\n',
131 silly resolved     readmeFilename: 'README.md',
131 silly resolved     bugs: { url: 'https://github.com/cryptocoinjs/ecurve-names/issues' },
131 silly resolved     homepage: 'https://github.com/cryptocoinjs/ecurve-names',
131 silly resolved     _id: '[email protected]',
131 silly resolved     _from: '[email protected]' },
131 silly resolved   { name: 'btc-address',
131 silly resolved     version: '0.1.0',
131 silly resolved     description: 'Manage Bitcoin addresses',
131 silly resolved     keywords:
131 silly resolved      [ 'cryptography',
131 silly resolved        'crypto',
131 silly resolved        'bitcoin',
131 silly resolved        'litecoin',
131 silly resolved        'currency',
131 silly resolved        'cryptocurrency' ],
131 silly resolved     devDependencies: { mocha: '1.*', terst: '0.0.1', 'convert-hex': '0.1.x' },
131 silly resolved     repository:
131 silly resolved      { url: 'https://github.com/cryptocoinjs/btc-address',
131 silly resolved        type: 'git' },
131 silly resolved     main: './lib/address.js',
131 silly resolved     dependencies: { sha256: '0.1.x', 'cryptocoin-base58': '0.1.x' },
131 silly resolved     readme: 'Bitcoin Address\n===============\n\nJavaScript component to handle Bitcoin addresses.\n\nAMD/CommonJS compatible.\n\nSee this article for more details: [bitcoin address](http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript).\n\nSee for more modifications: https://github.com/vbuterin/bitcoinjs-lib/blob/master/src/address.js\n\n\nInstall\n-------\n\n### Node.js/Browserify\n\n    npm install --save btc-address\n\n### Component\n\n    component install cryptocoinjs/btc-address\n\n\n### Bower\n\n    bower install btc-address\n\n\n### Script\n\n```html\n<script src="/path/to/btc-address.js"></script>\n```\n\n\nUsage\n-----\n\nhttp://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript\n\n```js\nvar Address = require(\'cryptocoin-address-btc\')\nvar conv = require(\'cryptocoin-convert-hex\')\n\nvar hash160 = "3c176e659bea0f29a3e9bf7880c112b1b31b4dc8"\nvar address = new Address(conv.hexToBytes(hash160), \'prod\') //\'testnet is also valid\'\nconsole.log(address.toString()) //16UjcYNBG9GTK4uq2f7yYEbuifqCzoLMGS\n```\n\n\nCredits\n-------\n\nMost of the code from Stefan Thomas in https://github.com/bitcoinjs/bitcoinjs-lib with modifications from Roman Shtylman\n\n\nLicense\n-------\n\n(MIT License)\n\nCopyright 2013, JP Richardson  <[email protected]>\n\n',
131 silly resolved     readmeFilename: 'README.md',
131 silly resolved     bugs: { url: 'https://github.com/cryptocoinjs/btc-address/issues' },
131 silly resolved     homepage: 'https://github.com/cryptocoinjs/btc-address',
131 silly resolved     _id: '[email protected]',
131 silly resolved     _from: '[email protected]' } ]
132 info install [email protected] into /home/dominic/c/eckey
133 info install [email protected] into /home/dominic/c/eckey
134 info install [email protected] into /home/dominic/c/eckey
135 info install [email protected] into /home/dominic/c/eckey
136 info installOne [email protected]
137 info installOne [email protected]
138 info installOne [email protected]
139 info installOne [email protected]
140 info /home/dominic/c/eckey/node_modules/ecdsa unbuild
141 info /home/dominic/c/eckey/node_modules/ecurve unbuild
142 info /home/dominic/c/eckey/node_modules/ecurve-names unbuild
143 info /home/dominic/c/eckey/node_modules/btc-address unbuild
144 verbose tar unpack /home/dominic/.npm/ecdsa/0.2.0/package.tgz
145 silly lockFile 54e1db04-minic-c-eckey-node-modules-ecdsa tar:///home/dominic/c/eckey/node_modules/ecdsa
146 verbose lock tar:///home/dominic/c/eckey/node_modules/ecdsa /home/dominic/.npm/54e1db04-minic-c-eckey-node-modules-ecdsa.lock
147 silly lockFile b7ef3139-inic-npm-ecdsa-0-2-0-package-tgz tar:///home/dominic/.npm/ecdsa/0.2.0/package.tgz
148 verbose lock tar:///home/dominic/.npm/ecdsa/0.2.0/package.tgz /home/dominic/.npm/b7ef3139-inic-npm-ecdsa-0-2-0-package-tgz.lock
149 verbose tar unpack /home/dominic/.npm/ecurve/0.1.0/package.tgz
150 silly lockFile 0025ccb3-inic-c-eckey-node-modules-ecurve tar:///home/dominic/c/eckey/node_modules/ecurve
151 verbose lock tar:///home/dominic/c/eckey/node_modules/ecurve /home/dominic/.npm/0025ccb3-inic-c-eckey-node-modules-ecurve.lock
152 silly lockFile fc786d04-nic-npm-ecurve-0-1-0-package-tgz tar:///home/dominic/.npm/ecurve/0.1.0/package.tgz
153 verbose lock tar:///home/dominic/.npm/ecurve/0.1.0/package.tgz /home/dominic/.npm/fc786d04-nic-npm-ecurve-0-1-0-package-tgz.lock
154 verbose tar unpack /home/dominic/.npm/ecurve-names/0.1.1/package.tgz
155 silly lockFile 776885fa--eckey-node-modules-ecurve-names tar:///home/dominic/c/eckey/node_modules/ecurve-names
156 verbose lock tar:///home/dominic/c/eckey/node_modules/ecurve-names /home/dominic/.npm/776885fa--eckey-node-modules-ecurve-names.lock
157 silly lockFile cac2b270-m-ecurve-names-0-1-1-package-tgz tar:///home/dominic/.npm/ecurve-names/0.1.1/package.tgz
158 verbose lock tar:///home/dominic/.npm/ecurve-names/0.1.1/package.tgz /home/dominic/.npm/cac2b270-m-ecurve-names-0-1-1-package-tgz.lock
159 verbose tar unpack /home/dominic/.npm/btc-address/0.1.0/package.tgz
160 silly lockFile 3a48feb6-c-eckey-node-modules-btc-address tar:///home/dominic/c/eckey/node_modules/btc-address
161 verbose lock tar:///home/dominic/c/eckey/node_modules/btc-address /home/dominic/.npm/3a48feb6-c-eckey-node-modules-btc-address.lock
162 silly lockFile 83cac444-pm-btc-address-0-1-0-package-tgz tar:///home/dominic/.npm/btc-address/0.1.0/package.tgz
163 verbose lock tar:///home/dominic/.npm/btc-address/0.1.0/package.tgz /home/dominic/.npm/83cac444-pm-btc-address-0-1-0-package-tgz.lock
164 silly gunzTarPerm modes [ '755', '644' ]
165 silly gunzTarPerm modes [ '755', '644' ]
166 silly gunzTarPerm modes [ '755', '644' ]
167 silly gunzTarPerm modes [ '755', '644' ]
168 silly gunzTarPerm extractEntry package.json
169 silly gunzTarPerm extractEntry package.json
170 silly gunzTarPerm extractEntry package.json
171 silly gunzTarPerm extractEntry package.json
172 silly gunzTarPerm extractEntry .npmignore
173 silly gunzTarPerm extractEntry README.md
174 silly gunzTarPerm extractEntry .npmignore
175 silly gunzTarPerm extractEntry README.md
176 silly gunzTarPerm extractEntry .npmignore
177 silly gunzTarPerm extractEntry README.md
178 silly gunzTarPerm extractEntry .npmignore
179 silly gunzTarPerm extractEntry README.md
180 silly gunzTarPerm extractEntry CHANGELOG.md
181 silly gunzTarPerm extractEntry lib/ecurve.js
182 silly gunzTarPerm extractEntry CHANGELOG.md
183 silly gunzTarPerm extractEntry lib/ecdsa.js
184 silly gunzTarPerm extractEntry CHANGELOG.md
185 silly gunzTarPerm extractEntry lib/ecurve-names.js
186 silly gunzTarPerm extractEntry CHANGELOG.md
187 silly gunzTarPerm extractEntry lib/address.js
188 silly lockFile 3a48feb6-c-eckey-node-modules-btc-address tar:///home/dominic/c/eckey/node_modules/btc-address
189 silly lockFile 3a48feb6-c-eckey-node-modules-btc-address tar:///home/dominic/c/eckey/node_modules/btc-address
190 silly lockFile 83cac444-pm-btc-address-0-1-0-package-tgz tar:///home/dominic/.npm/btc-address/0.1.0/package.tgz
191 silly lockFile 83cac444-pm-btc-address-0-1-0-package-tgz tar:///home/dominic/.npm/btc-address/0.1.0/package.tgz
192 info preinstall [email protected]
193 silly lockFile 54e1db04-minic-c-eckey-node-modules-ecdsa tar:///home/dominic/c/eckey/node_modules/ecdsa
194 silly lockFile 54e1db04-minic-c-eckey-node-modules-ecdsa tar:///home/dominic/c/eckey/node_modules/ecdsa
195 silly lockFile 776885fa--eckey-node-modules-ecurve-names tar:///home/dominic/c/eckey/node_modules/ecurve-names
196 silly lockFile 776885fa--eckey-node-modules-ecurve-names tar:///home/dominic/c/eckey/node_modules/ecurve-names
197 silly lockFile b7ef3139-inic-npm-ecdsa-0-2-0-package-tgz tar:///home/dominic/.npm/ecdsa/0.2.0/package.tgz
198 silly lockFile b7ef3139-inic-npm-ecdsa-0-2-0-package-tgz tar:///home/dominic/.npm/ecdsa/0.2.0/package.tgz
199 silly lockFile cac2b270-m-ecurve-names-0-1-1-package-tgz tar:///home/dominic/.npm/ecurve-names/0.1.1/package.tgz
200 silly lockFile cac2b270-m-ecurve-names-0-1-1-package-tgz tar:///home/dominic/.npm/ecurve-names/0.1.1/package.tgz
201 verbose readDependencies using package.json deps
202 verbose readDependencies using package.json deps
203 info preinstall [email protected]
204 info preinstall [email protected]
205 verbose cache add [ '[email protected]', null ]
206 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null]
207 verbose parsed url { protocol: null,
207 verbose parsed url   slashes: null,
207 verbose parsed url   auth: null,
207 verbose parsed url   host: null,
207 verbose parsed url   port: null,
207 verbose parsed url   hostname: null,
207 verbose parsed url   hash: null,
207 verbose parsed url   search: null,
207 verbose parsed url   query: null,
207 verbose parsed url   pathname: '[email protected]',
207 verbose parsed url   path: '[email protected]',
207 verbose parsed url   href: '[email protected]' }
208 verbose cache add name="cryptocoin-base58" spec="0.1.x" args=["cryptocoin-base58","0.1.x"]
209 verbose parsed url { protocol: null,
209 verbose parsed url   slashes: null,
209 verbose parsed url   auth: null,
209 verbose parsed url   host: null,
209 verbose parsed url   port: null,
209 verbose parsed url   hostname: null,
209 verbose parsed url   hash: null,
209 verbose parsed url   search: null,
209 verbose parsed url   query: null,
209 verbose parsed url   pathname: '0.1.x',
209 verbose parsed url   path: '0.1.x',
209 verbose parsed url   href: '0.1.x' }
210 verbose addNamed [ 'cryptocoin-base58', '0.1.x' ]
211 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ]
212 silly lockFile 2a0a2b0c-cryptocoin-base58-0-1-x [email protected]
213 verbose lock [email protected] /home/dominic/.npm/2a0a2b0c-cryptocoin-base58-0-1-x.lock
214 verbose readDependencies using package.json deps
215 verbose readDependencies using package.json deps
216 silly addNameRange { name: 'cryptocoin-base58',
216 silly addNameRange   range: '>=0.1.0-0 <0.2.0-0',
216 silly addNameRange   hasData: false }
217 verbose readDependencies using package.json deps
218 verbose readDependencies using package.json deps
219 verbose url raw cryptocoin-base58
220 verbose url resolving [ 'https://registry.npmjs.org/', './cryptocoin-base58' ]
221 verbose url resolved https://registry.npmjs.org/cryptocoin-base58
222 info trying registry request attempt 1 at 18:28:08
223 http GET https://registry.npmjs.org/cryptocoin-base58
224 verbose cache add [ '[email protected]', null ]
225 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null]
226 verbose parsed url { protocol: null,
226 verbose parsed url   slashes: null,
226 verbose parsed url   auth: null,
226 verbose parsed url   host: null,
226 verbose parsed url   port: null,
226 verbose parsed url   hostname: null,
226 verbose parsed url   hash: null,
226 verbose parsed url   search: null,
226 verbose parsed url   query: null,
226 verbose parsed url   pathname: '[email protected]',
226 verbose parsed url   path: '[email protected]',
226 verbose parsed url   href: '[email protected]' }
227 verbose cache add name="cryptocoin-bigint" spec="0.1.x" args=["cryptocoin-bigint","0.1.x"]
228 verbose parsed url { protocol: null,
228 verbose parsed url   slashes: null,
228 verbose parsed url   auth: null,
228 verbose parsed url   host: null,
228 verbose parsed url   port: null,
228 verbose parsed url   hostname: null,
228 verbose parsed url   hash: null,
228 verbose parsed url   search: null,
228 verbose parsed url   query: null,
228 verbose parsed url   pathname: '0.1.x',
228 verbose parsed url   path: '0.1.x',
228 verbose parsed url   href: '0.1.x' }
229 verbose addNamed [ 'cryptocoin-bigint', '0.1.x' ]
230 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ]
231 silly lockFile b1a5085e-cryptocoin-bigint-0-1-x [email protected]
232 verbose lock [email protected] /home/dominic/.npm/b1a5085e-cryptocoin-bigint-0-1-x.lock
233 silly addNameRange { name: 'cryptocoin-bigint',
233 silly addNameRange   range: '>=0.1.0-0 <0.2.0-0',
233 silly addNameRange   hasData: false }
234 verbose url raw cryptocoin-bigint
235 verbose url resolving [ 'https://registry.npmjs.org/', './cryptocoin-bigint' ]
236 verbose url resolved https://registry.npmjs.org/cryptocoin-bigint
237 info trying registry request attempt 1 at 18:28:08
238 http GET https://registry.npmjs.org/cryptocoin-bigint
239 verbose cache add [ 'cryptocoin-bigint@~0.1.0', null ]
240 verbose cache add name=undefined spec="cryptocoin-bigint@~0.1.0" args=["cryptocoin-bigint@~0.1.0",null]
241 verbose parsed url { protocol: null,
241 verbose parsed url   slashes: null,
241 verbose parsed url   auth: null,
241 verbose parsed url   host: null,
241 verbose parsed url   port: null,
241 verbose parsed url   hostname: null,
241 verbose parsed url   hash: null,
241 verbose parsed url   search: null,
241 verbose parsed url   query: null,
241 verbose parsed url   pathname: 'cryptocoin-bigint@~0.1.0',
241 verbose parsed url   path: 'cryptocoin-bigint@~0.1.0',
241 verbose parsed url   href: 'cryptocoin-bigint@~0.1.0' }
242 verbose cache add name="cryptocoin-bigint" spec="~0.1.0" args=["cryptocoin-bigint","~0.1.0"]
243 verbose parsed url { protocol: null,
243 verbose parsed url   slashes: null,
243 verbose parsed url   auth: null,
243 verbose parsed url   host: null,
243 verbose parsed url   port: null,
243 verbose parsed url   hostname: null,
243 verbose parsed url   hash: null,
243 verbose parsed url   search: null,
243 verbose parsed url   query: null,
243 verbose parsed url   pathname: '~0.1.0',
243 verbose parsed url   path: '~0.1.0',
243 verbose parsed url   href: '~0.1.0' }
244 verbose addNamed [ 'cryptocoin-bigint', '~0.1.0' ]
245 verbose addNamed [ null, '>=0.1.0-0 <0.2.0-0' ]
246 silly lockFile cd7dc585-cryptocoin-bigint-0-1-0 cryptocoin-bigint@~0.1.0
247 verbose lock cryptocoin-bigint@~0.1.0 /home/dominic/.npm/cd7dc585-cryptocoin-bigint-0-1-0.lock
248 verbose cache add [ '[email protected]', null ]
249 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null]
250 verbose parsed url { protocol: null,
250 verbose parsed url   slashes: null,
250 verbose parsed url   auth: null,
250 verbose parsed url   host: null,
250 verbose parsed url   port: null,
250 verbose parsed url   hostname: null,
250 verbose parsed url   hash: null,
250 verbose parsed url   search: null,
250 verbose parsed url   query: null,
250 verbose parsed url   pathname: '[email protected]',
250 verbose parsed url   path: '[email protected]',
250 verbose parsed url   href: '[email protected]' }
251 verbose cache add name="secure-random" spec="0.0.x" args=["secure-random","0.0.x"]
252 verbose parsed url { protocol: null,
252 verbose parsed url   slashes: null,
252 verbose parsed url   auth: null,
252 verbose parsed url   host: null,
252 verbose parsed url   port: null,
252 verbose parsed url   hostname: null,
252 verbose parsed url   hash: null,
252 verbose parsed url   search: null,
252 verbose parsed url   query: null,
252 verbose parsed url   pathname: '0.0.x',
252 verbose parsed url   path: '0.0.x',
252 verbose parsed url   href: '0.0.x' }
253 verbose addNamed [ 'secure-random', '0.0.x' ]
254 verbose addNamed [ null, '>=0.0.0-0 <0.1.0-0' ]
255 silly lockFile 0ac16206-secure-random-0-0-x [email protected]
256 verbose lock [email protected] /home/dominic/.npm/0ac16206-secure-random-0-0-x.lock
257 silly addNameRange { name: 'cryptocoin-bigint',
257 silly addNameRange   range: '>=0.1.0-0 <0.2.0-0',
257 silly addNameRange   hasData: false }
258 silly addNameRange { name: 'secure-random',
258 silly addNameRange   range: '>=0.0.0-0 <0.1.0-0',
258 silly addNameRange   hasData: false }
259 silly lockFile 0025ccb3-inic-c-eckey-node-modules-ecurve tar:///home/dominic/c/eckey/node_modules/ecurve
260 silly lockFile 0025ccb3-inic-c-eckey-node-modules-ecurve tar:///home/dominic/c/eckey/node_modules/ecurve
261 verbose url raw cryptocoin-bigint
262 verbose url resolving [ 'https://registry.npmjs.org/', './cryptocoin-bigint' ]
263 verbose url resolved https://registry.npmjs.org/cryptocoin-bigint
264 info trying registry request attempt 1 at 18:28:08
265 http GET https://registry.npmjs.org/cryptocoin-bigint
266 silly lockFile fc786d04-nic-npm-ecurve-0-1-0-package-tgz tar:///home/dominic/.npm/ecurve/0.1.0/package.tgz
267 silly lockFile fc786d04-nic-npm-ecurve-0-1-0-package-tgz tar:///home/dominic/.npm/ecurve/0.1.0/package.tgz
268 verbose url raw secure-random
269 verbose url resolving [ 'https://registry.npmjs.org/', './secure-random' ]
270 verbose url resolved https://registry.npmjs.org/secure-random
271 info trying registry request attempt 1 at 18:28:08
272 verbose etag "7DM8QRK83EAKXFAK22TG1WIGL"
273 http GET https://registry.npmjs.org/secure-random
274 info preinstall [email protected]
275 verbose readDependencies using package.json deps
276 verbose readDependencies using package.json deps
277 verbose cache add [ '[email protected]', null ]
278 verbose cache add name=undefined spec="[email protected]" args=["[email protected]",null]
279 verbose parsed url { protocol: null,
279 verbose parsed url   slashes: null,
279 verbose parsed url   auth: null,
279 verbose parsed url   host: null,
279 verbose parsed url   port: null,
279 verbose parsed url   hostname: null,
279 verbose parsed url   hash: null,
279 verbose parsed url   search: null,
279 verbose parsed url   query: null,
279 verbose parsed url   pathname: '[email protected]',
279 verbose parsed url   path: '[email protected]',
279 verbose parsed url   href: '[email protected]' }
280 verbose cache add name="cryptocoin-bigint" spec="0.1.x" args=["cryptocoin-bigint","0.1.x"]
281 verbose parsed url { protocol: null,
281 verbose parsed url   slashes: null,
281 verbose parsed url   auth: null,
281 verbose parsed url   host: null,
281 verbose parsed url   port: null,
281 verbose parsed url   hostname: null,
281 verbose parsed url   hash: null,
281 verbose parsed url   search: null,
281 verbose parsed url   query: null,
281 verbose parsed url   pathname: '0.1.x',
281 verbose parsed url   path: '0.1.x',
281 verbose parsed url   href: '0.1.x' }
282 verbose addNamed [ 'cryptocoin-bigint', '0.1.x' ]
283 http 404 https://registry.npmjs.org/cryptocoin-bigint
284 silly registry.get cb [ 404,
284 silly registry.get   { date: 'Sun, 19 Jan 2014 11:27:08 GMT',
284 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R15B03)',
284 silly registry.get     'content-type': 'application/json',
284 silly registry.get     'cache-control': 'max-age=0',
284 silly registry.get     'content-length': '52',
284 silly registry.get     'accept-ranges': 'bytes',
284 silly registry.get     via: '1.1 varnish',
284 silly registry.get     age: '0',
284 silly registry.get     'x-served-by': 'cache-hk90-HKG',
284 silly registry.get     'x-cache': 'MISS',
284 silly registry.get     'x-cache-hits': '0',
284 silly registry.get     'x-timer': 'S1390130828.016255379,VS0,VE216',
284 silly registry.get     'keep-alive': 'timeout=10, max=50',
284 silly registry.get     connection: 'Keep-Alive' } ]
285 silly lockFile b1a5085e-cryptocoin-bigint-0-1-x [email protected]
286 silly lockFile b1a5085e-cryptocoin-bigint-0-1-x [email protected]
287 verbose about to build /home/dominic/c/eckey/node_modules/ecurve-names
288 info /home/dominic/c/eckey/node_modules/ecurve-names unbuild
289 verbose about to build /home/dominic/c/eckey/node_modules/ecurve
290 info /home/dominic/c/eckey/node_modules/ecurve unbuild
291 info preuninstall [email protected]
292 info preuninstall [email protected]
293 info uninstall [email protected]
294 info uninstall [email protected]
295 verbose true,/home/dominic/c/eckey/node_modules,/home/dominic/c/eckey/node_modules unbuild [email protected]
296 info postuninstall [email protected]
297 verbose true,/home/dominic/c/eckey/node_modules,/home/dominic/c/eckey/node_modules unbuild [email protected]
298 info postuninstall [email protected]
299 error 404 'cryptocoin-bigint' is not in the npm registry.
299 error 404 You should bug the author to publish it
299 error 404
299 error 404 Note that you can also install from a
299 error 404 tarball, folder, or http url, or git url.
300 error System Linux 3.11.6-1-ARCH
301 error command "node" "/usr/bin/npm" "install"
302 error cwd /home/dominic/c/eckey
303 error node -v v0.10.21
304 error npm -v 1.3.21
305 error code E404
306 verbose exit [ 1, true ]


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.