Comments (22)
This also happens with the latest Quorum version (2.0.0) with geth 1.7.3. Would be nice to use cakeshop with the 7 nodes examples with Raft and Istanbul!
from cakeshop.
+1 Have similar issue, any workaround?
from cakeshop.
This seems like it happens due to changes in the geth protocol, requiring certain fields to be hex strings with '0x' prefixes.
I'm slowly tracking down the changes locally (but unsure if will submit PR, as doing a side project). A few I've identified are below - and am now looking for more:
index 0b41703..64d0a16 100644
--- a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/BlockServiceImpl.java
+++ b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/BlockServiceImpl.java
@@ -32,7 +32,7 @@ public class BlockServiceImpl implements BlockService {
input = id;
} else if (number != null && number >= 0) {
method = "eth_getBlockByNumber";
- input = number;
+ input = "0x"+Long.toHexString(number);
} else if (tag != null && !tag.isEmpty()) {
method = "eth_getBlockByNumber";
input = tag;
@@ -85,7 +85,7 @@ public class BlockServiceImpl implements BlockService {
public List<Block> get(long start, long end) throws APIException {
List<RequestModel> reqs = new ArrayList<>();
for (long i = start; i <= end; i++) {
- reqs.add(new RequestModel("eth_getBlockByNumber", new Object[]{i, false}, 42L));
+ reqs.add(new RequestModel("eth_getBlockByNumber", new Object[]{"0x"+Long.toHexString(i), false}, 42L));
}
return batchGet(reqs);
}
@@ -94,7 +94,7 @@ public class BlockServiceImpl implements BlockService {
public List<Block> get(List<Long> numbers) throws APIException {
List<RequestModel> reqs = new ArrayList<>();
for (Long num : numbers) {
- reqs.add(new RequestModel("eth_getBlockByNumber", new Object[]{num, false}, 42L));
+ reqs.add(new RequestModel("eth_getBlockByNumber", new Object[]{"0x"+Long.toHexString(num), false}, 42L));
}
return batchGet(reqs);
}
diff --git a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java
index db2e8fc..a6f09d7 100644
--- a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java
+++ b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java
@@ -136,7 +136,7 @@ public class WalletServiceImpl implements WalletService, GethRpcConstants {
@Override
public boolean isUnlocked(String address) throws APIException {
try {
- Map<String, Object> result = gethService.executeGethCall("eth_sign", new Object[]{address, DUMMY_PAYLOAD_HASH});
+ Map<String, Object> result = gethService.executeGethCall("eth_sign", new Object[]{address, "0x"+DUMMY_PAYLOAD_HASH});
if (StringUtils.isNotBlank((String) result.get("_result"))) {
return true;
}```
from cakeshop.
FYI I've given up on Cakeshop and started using https://github.com/blk-io/blk-explorer-free This works with Quorum & Ethereum
from cakeshop.
@horca17 Cakeshop is currently not able to run along 7nodes, tho an upgrade is underway.
from cakeshop.
Which version of cakeshop? What type of node?
from cakeshop.
I used version 0.9.1 as well as 0.10.0. I am trying to run Go ethereum node in attach mode
from cakeshop.
@karthiyogi version 0.9 and the docs currently explain how to attach it to a plain vanilla geth node. Version 0.10 docs haven't been updated yet, but its designed to work with quorum build of geth.
If you have geth, use 0.9 and follow the docs. If somethign occurs, please let me know in detail so I could guide you.
from cakeshop.
This is the full log
INFO 2017-08-14 06:13:02,626 [main] (BlockchainInitializerTask.java:120) Contract registry address not found
INFO 2017-08-14 06:13:02,627 [main] (BlockchainInitializerTask.java:149) ContractRegistry not found on chain
INFO 2017-08-14 06:13:02,627 [main] (BlockchainInitializerTask.java:154) Deploying ContractRegistry to chain
ERROR 2017-08-14 06:13:07,423 [main] (ContractRegistryServiceImpl.java:74 ) Error deploying ContractRegistry to chain: RPC request failed: invalid argument 0: missing 0x prefix for hex data
com.jpmorgan.cakeshop.error.APIException: RPC request failed: invalid argument 0: missing 0x prefix for hex data
at com.jpmorgan.cakeshop.service.impl.GethHttpServiceImpl.processResponse(GethHttpServiceImpl.java:197)
at com.jpmorgan.cakeshop.service.impl.GethHttpServiceImpl.executeGethCall(GethHttpServiceImpl.java:163)
at com.jpmorgan.cakeshop.service.impl.GethHttpServiceImpl.executeGethCall(GethHttpServiceImpl.java:144)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy86.executeGethCall(Unknown Source)
at com.jpmorgan.cakeshop.service.impl.ContractServiceImpl.create(ContractServiceImpl.java:201)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy98.create(Unknown Source)
at com.jpmorgan.cakeshop.service.impl.ContractRegistryServiceImpl.deploy(ContractRegistryServiceImpl.java:66)
at com.jpmorgan.cakeshop.service.task.BlockchainInitializerTask.deployContractRegistry(BlockchainInitializerTask.java:155)
at com.jpmorgan.cakeshop.service.task.BlockchainInitializerTask.run(BlockchainInitializerTask.java:76)
at com.jpmorgan.cakeshop.service.impl.GethHttpServiceImpl.runPostStartupTasks(GethHttpServiceImpl.java:376)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy86.runPostStartupTasks(Unknown Source)
at com.jpmorgan.cakeshop.config.AppStartup.onApplicationEvent(AppStartup.java:118)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:335)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:855)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:140)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134)
at com.jpmorgan.cakeshop.config.SpringBootApplication.main(SpringBootApplication.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
at java.lang.Thread.run(Thread.java:745)
INFO 2017-08-14 06:13:07,425 [main] (BlockchainInitializerTask.java:162) Deploying sample contract (SimpleStorage) to chain
ERROR 2017-08-14 06:13:08,010 [main] (BlockchainInitializerTask.java:169) Error deploying SimpleStorage to chain: RPC request failed: invalid argument 0: missing 0x prefix for hex data
com.jpmorgan.cakeshop.error.APIException: RPC request failed: invalid argument 0: missing 0x prefix for hex data
at com.jpmorgan.cakeshop.service.impl.GethHttpServiceImpl.processResponse(GethHttpServiceImpl.java:197)
at com.jpmorgan.cakeshop.service.impl.GethHttpServiceImpl.executeGethCall(GethHttpServiceImpl.java:163)
at com.jpmorgan.cakeshop.service.impl.GethHttpServiceImpl.executeGethCall(GethHttpServiceImpl.java:144)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy86.executeGethCall(Unknown Source)
at com.jpmorgan.cakeshop.service.impl.ContractServiceImpl.create(ContractServiceImpl.java:201)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy98.create(Unknown Source)
at com.jpmorgan.cakeshop.service.task.BlockchainInitializerTask.deployContractRegistry(BlockchainInitializerTask.java:165)
at com.jpmorgan.cakeshop.service.task.BlockchainInitializerTask.run(BlockchainInitializerTask.java:76)
at com.jpmorgan.cakeshop.service.impl.GethHttpServiceImpl.runPostStartupTasks(GethHttpServiceImpl.java:376)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy86.runPostStartupTasks(Unknown Source)
at com.jpmorgan.cakeshop.config.AppStartup.onApplicationEvent(AppStartup.java:118)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:335)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:855)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:140)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134)
at com.jpmorgan.cakeshop.config.SpringBootApplication.main(SpringBootApplication.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
at java.lang.Thread.run(Thread.java:745)
INFO 2017-08-14 06:13:08,013 [main] (BlockchainInitializerTask.java:88 ) Storing existing wallet account balances
from cakeshop.
Thanks, could you clarify which version of geth is in use? Thanks!
from cakeshop.
Geth
Version: 1.6.1-stable
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.7.5
Operating System: linux
GOPATH=
GOROOT=/usr/lib/golang
I tried version 1.5.9 as well as 1.6.7 too but same result only
from cakeshop.
Here are changes (to master) that get the GUI screen up. The only page that works is the Sandbox which will at least allow contract compilation/deploment:
xenon:cakeshop harry$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: cakeshop-api/src/main/java/com/jpmorgan/cakeshop/model/TransactionRequest.java
modified: cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/BlockServiceImpl.java
modified: cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/ContractServiceImpl.java
modified: cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java
no changes added to commit (use "git add" and/or "git commit -a")
xenon:cakeshop harry$ git diff master: cakeshop-api/src/main/java/com/jpmorgan/cakeshop/model/TransactionRequest.java
diff --git a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/model/TransactionRequest.java b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/model/TransactionRequest.java
index b244c4f..c0ae936 100644
--- a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/model/TransactionRequest.java
+++ b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/model/TransactionRequest.java
@@ -15,7 +15,7 @@ public class TransactionRequest {
public static final String BLOCK_LATEST = "latest";
- public static final int DEFAULT_GAS = 3_149_000;
-
public static final String DEFAULT_GAS = "0x300CC8"; //3149000
private String fromAddress;
@@ -62,7 +62,7 @@ public class TransactionRequest {
req.put("from", fromAddress);
req.put("to", contractAddress);
req.put("gas", DEFAULT_GAS);
-
req.put("data", function.encodeAsHex(args));
-
req.put("data", "0x" + function.encodeAsHex(args)); if (StringUtils.isNotBlank(privateFrom)) { req.put("privateFrom", privateFrom);
xenon:cakeshop harry$ git diff master: cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/BlockServiceImpl.java
diff --git a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/BlockServiceImpl.java b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/BlockServiceImpl.java
index 0b41703..944d12b 100644
--- a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/BlockServiceImpl.java
+++ b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/BlockServiceImpl.java
@@ -32,7 +32,7 @@ public class BlockServiceImpl implements BlockService {
input = id;
} else if (number != null && number >= 0) {
method = "eth_getBlockByNumber";
-
input = number;
-
input = "0x" + Long.toHexString(number); } else if (tag != null && !tag.isEmpty()) { method = "eth_getBlockByNumber"; input = tag;
@@ -85,7 +85,7 @@ public class BlockServiceImpl implements BlockService {
public List get(long start, long end) throws APIException {
List reqs = new ArrayList<>();
for (long i = start; i <= end; i++) {
-
reqs.add(new RequestModel("eth_getBlockByNumber", new Object[]{i, false}, 42L));
-
}
reqs.add(new RequestModel("eth_getBlockByNumber", new Object[]{"0x"+Long.toHexString(i), false}, 42L)); } return batchGet(reqs);
@@ -94,7 +94,7 @@ public class BlockServiceImpl implements BlockService {
public List get(List numbers) throws APIException {
List reqs = new ArrayList<>();
for (Long num : numbers) {
-
reqs.add(new RequestModel("eth_getBlockByNumber", new Object[]{num, false}, 42L));
-
reqs.add(new RequestModel("eth_getBlockByNumber", new Object[]{"0x"+Long.toHexString(num), false}, 42L)); } return batchGet(reqs);
}
xenon:cakeshop harry$ git diff master: cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/ContractServiceImpl.java
diff --git a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/ContractServiceImpl.java b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/ContractServiceImpl.java
index 394b13c..bb9c986 100644
--- a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/ContractServiceImpl.java
+++ b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/ContractServiceImpl.java
@@ -212,7 +212,7 @@ public class ContractServiceImpl implements ContractService {Map<String, Object> contractArgs = new HashMap<>(); contractArgs.put("from", getAddress(from));
-
contractArgs.put("data", data);
-
contractArgs.put("data", "0x" + data); contractArgs.put("gas", TransactionRequest.DEFAULT_GAS); // add quorum args
xenon:cakeshop harry$ git diff master: cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java
diff --git a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java
index db2e8fc..5c42b22 100644
--- a/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java
+++ b/cakeshop-api/src/main/java/com/jpmorgan/cakeshop/service/impl/WalletServiceImpl.java
@@ -136,7 +136,8 @@ public class WalletServiceImpl implements WalletService, GethRpcConstants {
@OverRide
public boolean isUnlocked(String address) throws APIException {
try {
-
Map<String, Object> result = gethService.executeGethCall("eth_sign", new Object[]{address, DUMMY_PAYLOAD_HASH});
-
LOG.info("isUnlocked address=" + address);
-
Map<String, Object> result = gethService.executeGethCall("eth_sign", new Object[]{address, "0x" + DUMMY_PAYLOAD_HASH}); if (StringUtils.isNotBlank((String) result.get("_result"))) { return true; }
from cakeshop.
I also wanted to try Cakeshop with Quorum's 7node example and got stuck on this error; With which version does Cakeshop still work?
from cakeshop.
Same problem here
from cakeshop.
Any solutions to this problem yet?
from cakeshop.
from cakeshop.
Hi,
thanks for your answer. I've tried to use the blk-explorer, but I didn't manage to get it up and running with the 7nodes example. There seems to be an issue with running vagrant and docker at the same time... Do you have any suggestions how to do that?
Thanks!
from cakeshop.
We don’t use the vagrant 7nodes example as we have our own customised install scripts.
Try contacting the chap who maintains the code on github. His name is Ivaylo. He was quite helpful with an issue I had a while ago.
from cakeshop.
We don’t use the vagrant 7nodes example as we have our own customised install scripts.
Try contacting the chap who maintains the code. His name is Ivaylo, and was quite helpful with an issue I had a while ago.
from cakeshop.
I also wanted to try Cakeshop with Quorum's 7node example and got stuck on this error; somebody has any luck? let us know, thanks.
from cakeshop.
Any workaround (or cakeshop upgrade) to this issue? I'm getting the same error.
quorum-example and cakeshop version: cakeshop-0.10.0-x86_64-linux.war
from cakeshop.
@jososaga not at the moment, its still being worked on.
from cakeshop.
Related Issues (20)
- Create New Chain and Node Settings in multi-node environments
- Improve error dialogs everywhere
- Can cakeshop create a network like quorum maker? HOT 3
- Unable to load transaction HOT 11
- Customize cakeshop HOT 2
- Geth failed to start when using Docker image HOT 1
- Update default tessera partyinfo url and 7nodes.json file HOT 1
- Add support for adding raft learners HOT 1
- Cakeshop build - package javax.xml.bind does not exist HOT 4
- Unrecognized field "internal" (class com.jpmorgan.cakeshop.model.SolcResponse$GasEstimates)
- Cannot stop node in cakeshop-Manage Node module HOT 2
- Setting up Cakeshop for pre-existing Quorum network with Istanbul consensus HOT 12
- Feature Request: allow to send ETH to any ethereum address in Wallet window HOT 1
- webpack.js -p'
- webpack.js
- Cannot unlock account nor deploy contract registry; Getting no meaningful error message. HOT 2
- Sandbox attach to address only works with contracts deployed through cakeshop
- Pagination for listing permissioned accounts
- Cakeshop can’t connect node after node restart
- about Node Manager
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cakeshop.