For my Hyperledger Business Network, have defined all my network objects (Enums, Assets, Participants, Transactions, Events etc) in a Composer CTO Model file. I also use the Concept, Abstract and Relationship (-->) features as well in the cto file.
Is there an equivalent of CTO model file in the new development model in HL 1.4 without Composer. If not what's the best way to achieve the same as a model CTO file?
As per my understanding, There is no alternative the same as the CTO file. Hyperledger Composer follows a Modeling language for the asset, participants creation.
Hyperledger Fabric supports Smart Contact development in general-purpose programming languages, such as JavaScript, Java, Go, and Node.js.
If you are a beginner in Hypelredger fabric development then you have first cleared the concept of the orderer, peer, CA, and organization concept. And then first you have to start IBM Blockchain Platform VS Code extension for fabric. It will provide a local fabric environment to create, test and deploy a fabric smart contract. Also generate 1 peer, 1 orderer, 1 CA service under VS code environment.
Here is a link to start development with VS code extension. So using VS Code extension you can create a transaction for asset and participate creation.
Hope it will help you :)
Thanks for the info Isha. I had already come across the IBM extension and various examples in the fabric-samples suite and creation of main objects ( assets) via Transactions.
I was more wondering on best ( and fast/less code) way to implement other CTO features like Concept, Abstract and Relationship (-->). But looks like there isn’t.
Related
I'm currently working on performance benchmarking using Hyperledger Caliper.
I have tried several samples but it seems that the structure of sample benchmarks are different from that of a business network made on Hyperledger Composer.
Looks like model file and script file are all reproduced into one javascript file as a benchmark.
Could anyone tell me how to test my own business network made on Hyperledger Composer?
Or, Should I reproduce my business network into one javascript file?
I looked at the official website (https://hyperledger.github.io/caliper/)
But, it seems that it is not updated because codes on the website don't work.
Thank you!
Saving different models with their corresponding config files, tracking the results and parameters, searching among them using customized filters and maybe always having a pointer to the current SOTA can be quite time-saving.
I couldn't even find something similar to TensorFlow Hub on the local server. Right now, closest I could get is Git LFS.
Is there anything better out there?
I found the answer. A few open source projects are trying to do the job. The first one is named Data Science Version Control or DVC. Which according to the docs is:
simple command line Git-like experience. Does not require installing and maintaining any databases. Does not depend on any proprietary online services;
It manages and versions datasets and machine learning models. Data is saved in S3, Google cloud, Azure, Alibaba cloud, SSH server, HDFS or even local HDD RAID;
It makes projects reproducible and shareable, it helps to answer the question: "how the model was built";
It helps manage experiments with Git tags or branches and metrics tracking;
The other possible solution to think of is MinIO which is an object storage server
suited for storing unstructured data such as photos, videos, log files, backups and container / VM images.
Microsoft Azure has a service called Azure Machine Learnig service that does exactly this, but goes much further with governance/model explainability/DevOps etc. We also include free tiers to a lot of services and announced unlimited private repos on GitHub recently.
I have previous experience in using Ethereum and Solidity, but now I want to try writing smart contracts for Hyperledger.
I have few considerations:
First one is regarding supported databases. According to their documentation (http://hyperledger-fabric.readthedocs.io/en/latest/ledger.html) they use LevelDB for storing contract data and CouchDB support is still in beta. Does anyone have any experience using CouchDB in Hyperledger?
Second, I see that Go is mostly used for the specification of smart contracts, but they have support for Java too. Is Java still in beta too, and is there support for any other programming language?
Also, what operating system do you suggest for production server running Hyperledger?
Thank you for the answers.
Is Java still in beta too, and is there support for any other
programming language?
Hyperledger V1.0 doesn't support Java Chaincode.
There will be support for it in the future.
You can ask around in https://chat.hyperledger.org/channel/fabric for ETAs.
There is also a work in progress to have node.js support.
Also, what operating system do you suggest for production server
running Hyperledger?
Ubuntu 16.04 LTS works well
Does anyone have any experience using CouchDB in Hyperledger?
Yes, CouchDB works well if your data is modeled as JSON and you would like to query the content of the data. The default goleveldb state database only supports key-based queries.
You should take a look at Hyperleger Composer that helps you create blockchain applications on Hyperledger Fabric quite easy. (It works better with Ubuntu).
It has is own Modeling Language.
Hyperledger initially was build using Go language.
the aim of the hyperledger team is to support as many languages as possible. currently the hyperledger composer( tool for developing blockchain application) supports javascript for defining the assets, transactions and chaincode.
the transactions log, state data and backed by Level DB and Couch DB
Note :
LevelDB and CouchDB are fully integrated in fabric framework,
currently you can't replace them with other database
Chaincode runs in a secured Docker container, the chaincode (aka smart-contract)can be programmed in Go,Node,Java currently Go is stable and fully supported language.
considering the operating system i have tested the fabric network running on Microsoft Azure platform where created a image of ubuntu 16.04 and installed Fabric framework.till now got no issue on it.
Can you explain Hyperledger for someone who already knows what blockchains are? Their website is really vague and provides minimal information, including a definition as "communities of software developers building blockchain frameworks and platforms". Wikipedia page for Hyperledger gives the impression that it's a set of modular tools that can be adapted for blockchain projects. Then again I've listened to pitches of a few Hyperledger projects and they talk about running their stuff "on" Hyperledger, like they had a distinct blockchain that multiple projects run on. But is it more like a make-your-own-blockchain toolkit?
Hyperledger is a collection of blockchain related projects. Pitches that claim they are running their stuff on Hyperledger most likely means they are using Fabric or Sawtooth, although more likely than not Fabric, to implement the blockchain they are using. Fabric is one of the Hyperledger projects that provides a permissioned blockchain implementation that adheres to the Fabric protocols which define how the network components interact. There is no single Hyperledger blockchain, just like there is no single MySQL databases.
Hyperledger is a technology initiative, not a single project. In fact, several dozen projects are currently in development under that umbrella.
If someone is contrasting Hyperledger with Ethereum, they are probably specifically talking about Hyperledger Fabric. In fact, there is actually an Ethereum node project within Hyperledger-- Hyperledger Burrow! ( You can check that out here: https://github.com/hyperledger/burrow )
So, your first careful question if you are trying to detect bullshit in this space should be to figure out if the person knows what substrate they are using-- Fabric, Burrow, or something else entirely!
Of equal value, make sure they understand that Hyperledger is not just (or even primarily) IBM!
Now, if you ARE talking about Hyperledger Fabric vs. Ethereum, probably the most important difference is to recognize that Fabric does not necessarily inform the entire network about all transactions, whereas for Ethereum this is a given. Fabric allows different chains ("sidechains"-ish) to be spun up on demand between a subset of nodes on the network. This allows, in principle, different competing businesses in an industry to peer-validate public transactions, but also to maintain private smart contracts between a limited set of entities.
More interesting is the potential to build a top-level public contract that requires the results of privately-held parts, so long as they meet certain criteria.
But the super-short version is: Fabric allows privacy; Ethereum mandates global transparency. Which approach is "better" very much depends on the application.
Hyperledger is the open-source blockchain initiative sponsored by the Linux Foundation. The phrase "Hyperledger" is a trademark of Digital Asset Holdings. There are many projects under the umbrella, but the main project contributed by IBM is the Fabric. www.hyperledger.org has more info. Hyperledger focuses on permissioned blockchain technology as compared against public blockchains like Ethereum.
Hyperledger is not a company, not a cryptocurrency. Hyperledger is rather something like a hub for open industrial blockchain development. Hyperledger does not support Bitcoin or any other cryptocurrency. But the platform is thrilled by blockchain technology.
Hyperledger does not intend to establish any kind of Hyperledger coin. Hyperledger Project is an open source, collaborative effort to create a blockchain for business-to-business (B2B) and business-to-customer (B2C) transactions.
Hyperledger blockchains are generally permissioned blockchains, which means that the parties that join the network are authenticated and authorized to participate on the network. Hyperledger does not refer to any specific technology or tool rather it refers to a project where multiple teams are collaborating to develop open source and distributed ledger technology (DLT).
The basic flow of making the change to the code and then pushing the code using IDE or CLI to the CF instance seems to be quite inefficient. What other approach exists, preferably with following characteristics:
Ease of setting up the environment on a developer's machine including cases such as on boarding of new team member when the replicability and consistency is important
Seamless development experience - change/deploy/test
Support for local services binding and mocking/stubbing
There was similar question already but it is quite outdated and with the pace of changes in the industry (e.g. Docker explosion) there might be better alternatives to the push.