User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
internship:project_ideas [2018/03/05 19:20]
Min Yu
internship:project_ideas [2018/03/25 03:46] (current)
Min Yu
Line 1: Line 1:
-==== 2018 Projects ====+====== 2018 Projects ====== 
 + ​[[internship:​how_to_apply|APPLICATION IS NOW CLOSED]]
 **Project 1: Algorithmic Dispute Resolution in Construction** **Project 1: Algorithmic Dispute Resolution in Construction**
Line 19: Line 20:
 ---- ----
 **Project 2: Design Effective Operational Platform for Blockchain Management** **Project 2: Design Effective Operational Platform for Blockchain Management**
-  ***Project Description:​** Blockchain networks, itself is a complex distributed system. There are two main challenges right now to adopt blockchain services. 1) Hard to provision, especially for enterprise scenarios with requirements on permissions,​ data privacy, etc. 2) Difficult to operate, due to the lack of an effective tool. This project targets to design a practical operational management platform for blockchain services based on existing codebase of Hperledger ​Cello, including an operator dashboard and user dashboard. +  ***Project Description:​** Blockchain networks, itself is a complex distributed system. There are two main challenges right now to adopt blockchain services. 1) Hard to provision, especially for enterprise scenarios with requirements on permissions,​ data privacy, etc. 2) Difficult to operate, due to the lack of an effective tool. This project targets to design a practical operational management platform for blockchain services based on existing codebase of Hyperledger ​Cello, including an operator dashboard and user dashboard. 
-  ***Additional Information:​** [[https://​​hyperledger/​cello]]+  ***Additional Information:​** [[https://​​hyperledger/​cello ​| Project repo]],​[[https://​​projects/​CE/​issues/​CE-188?​filter=allopenissues | Available TODO features]]
   ***Learning Objectives:​** ​   ***Learning Objectives:​** ​
-        *Work closely with community developers to learn the open-source culture and skills+        *Work closely with community ​experts and developers to learn the open-source culture and skills
         *Advanced knowledge inside the blockchain and distributed ledger areas         *Advanced knowledge inside the blockchain and distributed ledger areas
   ***Expected Outcome:**   ***Expected Outcome:**
         *Enhanced dashboard to operate the blockchain networks         *Enhanced dashboard to operate the blockchain networks
         *Advanced capabilities to manage blockchain networks, including life-cycle, chaincode, permission         *Advanced capabilities to manage blockchain networks, including life-cycle, chaincode, permission
 +        *Other open objects that align with the existing roadmap
   ***Eduction Level:** Graduate student preferred   ***Eduction Level:** Graduate student preferred
   ***Desirable Skills:**   ***Desirable Skills:**
         *Interested with blockchain and distributed system         *Interested with blockchain and distributed system
-        *Backend development skills including Python, Node.Js+        *Backend development skills including Python, Node.Js. Cloud and Docker is a bonus
         *Frontend skills including javascripts/​css/​html,​ experience with vue/​react/​jquery is a bonus         *Frontend skills including javascripts/​css/​html,​ experience with vue/​react/​jquery is a bonus
   ***Level of Difficulty:​** Medium   ***Level of Difficulty:​** Medium
   ***Preferred Hours and Length of Internship:​** Part-time (20 hours a week for 24 weeks starting in summer and ending in fall)   ***Preferred Hours and Length of Internship:​** Part-time (20 hours a week for 24 weeks starting in summer and ending in fall)
-  ***Mentor(s):​** Baohua Yang, [[]]+  ***Mentor(s):​** ​[[ | Baohua Yang]], [[ ​| Haitao Yue]] [[ | Tong Li]]
Line 177: Line 179:
         *Stage 3. Make doc to get quick start         *Stage 3. Make doc to get quick start
   ***Eduction Level:** Graduate student or undergraduate student   ***Eduction Level:** Graduate student or undergraduate student
-  ***Desirable Skills:** Python; C; Linux; Writing Docs+  ***Desirable Skills:** Python; ​<​nowiki>​C++</​nowiki>​; Linux; Writing Docs
   ***Level of Difficulty:​** Medium   ***Level of Difficulty:​** Medium
   ***Preferred Hours and Length of Internship:​** Full-time (40 hours a week for 12 weeks during the summer)   ***Preferred Hours and Length of Internship:​** Full-time (40 hours a week for 12 weeks during the summer)
-  ***Mentor(s):​** Ankit Raj, [[]]+  ***Mentor(s):​** Ankit Raj, [[]]
 ---- ----
Line 207: Line 209:
 ---- ----
-**Project 10: UTXO Transactions in Iroha** +**Project 10: Simulating Hyperledger Networks with Shadow** 
-  ***Mentor(s):** Salman ​A. BasetIBM Blockchain, [[]]+  ***Project Description:​** The Shadow network simulation tool ([[https://​​]]is capable of running off-the-shelf software in a controlled, simulated network environment. ​ To accomplish the task, a plugin to the Shadow simulator must be written for each piece of software run under simulation. ​ Shadow is already being used to simulate and measure, in a lab environment,​ the Tor network and the Bitcoin network. This internship is focused on implementing a Shadow plugin for one of the Hyperledger blockchain platforms so that the community can run simulations and measure the performance at different scales. ​ The data collected will guide future development as well as provide hard numbers for the performance and scalability working group to work with. 
 +  ***Additional Information:** The Shadow network simulation tool is here: [[https://​]] and from there you can follow links to examples of what was done to simulate Bitcoin and Tor networks with Shadow. 
 +  ***Learning Objectives:​**  
 +        *Put into practice writing real software in the programming languages they have learned. 
 +        *Gain a deep understanding of how the Hyperledger blockchains are organized at the network level. 
 +        *Learn about consensus networks and how the nodes must collaborate and corroborate to always come to the same conclusion.  
 +        * Experience working closely with an open source working group to implement a tool they can use to run experiments with. 
 +  ***Expected Outcome:**  
 +        *Shadow plugin for one of the Hyperledger blockchain platforms. 
 +        *A Shadow simulation configuration that successfully executes and simulates a Hyperledger blockchain network. 
 +        *A post-mortem report explaining what happened during the projectwhat went right, and what went wrong. 
 +        * A proposal--developed with the help of the Scalability and Performance working group--for a simulation experiment that can be run using the new tool.  This just needs to be a detailed description (e.g. what is the scale, what is to be measured), no actual implementation is expected. 
 +  ***Eduction Level:** Graduate student preferred 
 +  ***Desirable Skills:**  
 +        *Must be proficient in Python and at least one of C/<​nowiki>​C++</​nowiki>/​Rust. 
 +        *Must be proficient with setting up software builds using CMake and/or Makefiles. 
 +        *Must be proficient with Git and Github and email as collaboration tools. 
 +        *Must have some understanding of the network stack and how networks are organized (e.g. IP addresses, ports, TCP/UDP, etc). 
 +        *A plus if they are familiar with Docker and/or Vagrant. 
 +  ***Level of Difficulty:​** Challenging 
 +  ***Preferred Hours and Length of Internship:​** Full-time (40 hours a week for 12 weeks during the summer) 
 +  ***Mentor(s):​** David Huseby, [[]]
 ---- ----
-==== 2017 (2017 projects no longer accepting applications) ====  +**Project ​11Utilizing Hyperledger ​Fabric ​to Develop Supply Chain Application** 
----- +  ***Project ​Description:​** ​Utilize ​Hyperledger ​Fabric framework ​to develop food tracing application. This application needs to realize track and monitor of food's origin ​and transportation through collecting data from manufacturers and customers ​of food supply chainPort the existing Hyperledger Sawtooth Supply Chain application ([[https://​​hyperledger/​sawtooth-supply-chain]]) ​to Hyperledger FabricContribute this source code to Hyperledger Fabric’s sample repository ([[https://​​hyperledger/​fabric-samples]]). Write up comparative analysis on the differences in implementing smart contracts (chaincode vs. transaction families) in the two technologies -- Hyperledger Fabric and Hyperledger Sawtooth. In additiondocument the steps required to convert ​running application in Hyperledger Sawtooth to Hyperledger Fabric ​and vice versa. Time permitting develop a tool that will convert chaincode ​to transaction families and vice versa
-**Project ​1:** **Deploy ​Fabric ​on Kubernetes Using Cello** +  ***Additional Information:​** 
-  * **Description:​ ** Cello is a Hyperledger ​project used to deploy blockchain services, which can be used to easily create, manage ​and stop a blockchain system. Currently it supports platforms as baremetal ​and docker swarm. As another important orchestration tool in container world, Kubernetes is widely accepted by lots of cloud providersThe initial idea of the intern project is to add Kubernetes support for Cello.The project will enhance Cello by providing a user interface which would allow system administrators ​to edit their desired topology and resources of blockchain systemgenerating ​Kubernete config file and calling Kubernetes APIs to deploy such system+        *[[https://​​hyperledger/​sawtooth-supply-chain]] 
-  * **Additional Information:​**  +        *[[https://​​hyperledger/fabric-samples]] 
-        * Cello:https://​​hyperledger/​cello +  ***Learning Objectives:** Cultivate interns ​with block chain and hyperledger project technology through training and education. Follow project progress and research result through weekly meeting. Participate local meetups and involve in open community discussion.  
-        * Kubernetes:https://​​kubernetes/kubernetes +  ***Expected Outcome:** Food trace application with Fabric framework ​and demos. Technical document and comparative analysis report between Sawtooth and Fabric. Performance analysis demo
-  * **Desirable Skills:**  +  ***Eduction Level:** Graduate student preferred 
-        * Familiar ​with Python ​and golang+  ***Desirable Skills:**  
-        Know about Docker ​and Kubernetes+        *Languages: Javascript, Go, Python 
-        Fluent Mandarin will be prefered +        *Blockchain platforms: Hyperledger Fabric (basic); Hyperledger ​Fabric ​(basic) 
-  * **Learning Objectives:** +        *Collaboration tools: GithubRocket Channel 
-        * Knowledge of working with open source community. +  ***Level of Difficulty:** Challenging 
-        * Architecture and basic features of Cello, ​Fabric ​and Kubernetes. +  ***Preferred Hours and Length ​of Internship:** Full-time (40 hours a week for 12 weeks during the summer) or Part-time (20 hours a week for 24 weeks starting in summer and ending in fall) 
-        * How to designdevelop and test a feature. +  ***Mentor(s):​** ​Leon Liang, [[]] ​
-  * **Expected Outcome: **Running feature, UI and tests +
-  * **Level of Difficulty: **Medium +
-  * **Mentor(s):​ **Jiang Feihu, Huawei, [[|]]+
 ---- ----
-**Project ​2:** **Contract-based Business Process Execution ​ / Hyperledger as a Business Process Execution Engine** +**Project ​12UTXO Transactions in Iroha** 
-  * **Description:​ **  +  ***Project ​Description:​** ​The unspent transaction output ​(UTXO) model, in contrast to the current account-based model used in Irohahelps to enhance the privacy ​of transactions ​and also can provide benefits ​with respect to interoperability with other UTXO-based blockchains,​ such as BitcoinTo realize ​the UTXO transaction model in Iroha, ​the task is to implement ​an unspent transaction output cache (for transaction verification) and support inputs ​and the generation of outputs for Iroha asset transfer transactions
-      * Many systems rely on process-based execution logic (banksinsurance companies, etc.). Also there are a growing number of applications where data originated from sensors and other physical data sources are transformed and processed ​in a workflow-like manner. BPMN is a standard for describing business processesalso extended by other standards (e.g. DMNN) to describe decision logic behind individual process steps. +  ***Additional Information:** [[​glossary/​unspent-transaction-output]] 
-      * Traditional process engines assume there is a central entity responsible for all execution/​management tasks like starting a process instance, ​ passing data (represented by tokens) among components implementing different tasks of a process (e.g. validate data, initiate an asynchronous transaction,​ sending a confirmation email, etc.). +  ***Learning Objectives:** The learning objective is to understand the difference between account-based and UTXO-based transaction models for blockchain. Both of these models have different use cases and the underlying philosophies behind the models are different. By comprehending both modelsthe intern will have an understanding of when to apply which model to what kind of problem. 
-      * This engine is a bottleneck in terms of performance,​ robustness ​and also assumes that a trusted central entity ​with no external control exists.Process monitoring tools often rely on the status of processes under execution returned by the execution engine ​in the form of events or log entries. +  ***Expected Outcome:** <​nowiki>​C++</​nowiki>​ source code for supporting the UTXO transaction ​model in Iroha 
-      * The aim of the internship ​is to create a mapping from business process execution semantics (formalized from BPMN model fragments) to smart contracts of Hyperledger. This way, Hyperledger will serve as a process execution engine. Blockchain can also serve as an audit log provider to check compliance of external executions ​(e.g. to verify whether a particular actor in a financial ecosystem executed its process properly)+  ***Eduction Level:** Graduate student or undergraduate student 
-      * The intern will perform the following suggested tasks with the help of the mentor: +  ***Desirable Skills:** <​nowiki>​C++<​/nowiki>, understanding ​of basic blockchain concepts 
-         * define a subset of BPMN language which will be mapped to  smart contracts +  ***Level of Difficulty:** Medium 
-         * create sample but representative case studies which are complex enough to cover relevanr combinations of BPMN model elements +  ***Preferred Hours and Length ​of Internship:** Full-time (40 hours week for 12 weeks during the summeror Part-time (20 hours a week for 24 weeks starting in summer ​and ending ​in fall
-         * create test definitions (input data and required output) for these models +  ***Mentor(s):​** ​Makoto Takemiya, [[]]
-         * define a mapping from model elements to smart contract fragments over Hyperledger +
-         * create example contracts ​and validate ​the concept +
-         * define and create automated transformation for contract ​generation +
-         * execute and evaluate pre-defined tests to (informally) validate the correctness ​of the approach and the transformations  +
-         * optional: re-use and adapt existing modelling frameworks (e.g. to serve as a "​design GUI" over blockchain-based process execution +
-  * **Additional Information**:​Similar research has already begun over Ethereum, see e.g., DOI: 10.1007/978-3-319-45348-4 +
-  * **Desirable Skills:** +
-        * Ability ​to model thingsbasic understanding of business processes +
-        BPMN knowledge +
-        ​Coding experience (preferably in Java) +
-        ​Advantageprevious knowledge in model storage/​manipulation techniques (e.g. XML transformations,​ Eclipse EMF and related technologies) +
-        * Ability to read scientific papers or technology descriptions ​in English +
-        * Basic understanding of blockchain concepts +
-        * Solid English knowledge +
-        * Ability to work and make decisions individually (under supervision) +
-  * **Learning Objectives:** +
-        Technical learning objectives:  +
-        ​Understanding of smart contracts and Hyperledger +
-        ​Experience in building Hpyerledger-based applications +
-        ​Advanced knowledge on BPMN modeling +
-        * Experience in formal methods (e.g. dataflow networks) +
-        ​Model transformation/generation technologies (e.g. Xtext) +
-        * Understanding ​of business process monitoring and compliance check and their role in financial applications +
-        * Experience in scientific literature review +
-        * Mentoring will be primarily carried out remotely (e.g. Skype) with daily consultation if needed.  +
-        * We are currently checking the possibility for officially hosting the intern.Please be advised that we expect not to be able to cover travel costs. +
-  * **Expected Outcome: ** +
-        Report on BPMN mapping definition, incl. example models and required behavior +
-        ​Report on the implementation ​and experiments +
-        * Code (at a Proof of Concept level): +
-            ​Smart contract patterns to represent BPMN behavior +
-            ​Generator code to a)retrieve relevant information from BPMN models and b)generate the corresponding smart contracts +
-            * Simple execution environment where the pre-defined case study can be implemented(sample data, workload generator, test evaluator) +
-            * Test cases defined, executed ​and evaluated ​in order to (practicallyprove the correctness of the transformation/​generated smart contracts +
-  * **Level of Difficulty: **Medium +
-  *   **Mentor(s):​ **László Gönczy, Budapest University of Technology and Economics, Department of Measurement and Information Systems, Fault Tolerant Systems Research Group, [[|]]+
 ---- ----
-**Project 3:** **Anonymous Transactions in Iroha** +==== Previous Years ==== 
-  * **Description:​ **For many use cases involving distributed ledger, the ability to hide the sender and recipient of digital assets, while still being able to verify that the assets exist and are not being double spent, is required. To realize this in Hyperledger Iroha, a scheme involving secure multiparty computation or dining cryptographer (DC) networks should be implemented as a prototype and studied. +
-  * **Additional Information:​** Reading the following documents might be useful: ​             https://​​wiki/​Dining_cryptographers_problem ​ https://​​wiki/​Oblivious_transfer +
-  * **Desirable Skills:** C++11 and above, basic knowledge of cryptography. +
-  * **Learning Objectives:​**Interns can learn about applied cryptography,​ distributed ledgers, and managing financial assets and contracts. Our company works with many financial institutions in Japan, so it can be interesting to learn about many of the problems that financial institutions face and how to solve them using technology. +
-  * **Expected Outcome: **Prototype of anonymous transfers in Hyperledger Iroha. +
-  * **Level of Difficulty: **Difficult +
-  * **Mentor(s):​ **Makoto Takemiya and Bogdan Vaneev, Soramitsu, [[]] ​    +
 ---- ----
-**Project 4:** **Preserving Privacy with Sawtooth Lake** +  ​* [[internship/project_ideas/2017 2017]]
-  * **Description:​ **  +
-        * Privacy is a very active area of research in distributed ledgers. Privacy can be considered from a number of aspects including commonly: transaction logic, assets, and transactor (user) participation. +
-        * Hyperledger Sawtooth Lake is a distributed ledger designed to apply across the deployment spectrum from publicly available networks to closed consortium networks. This project will explore privacy techniques applicable across that spectrum with a preference for the most difficult deployments where information is generally visible across the network. +
-        * The intern will work with Sawtooth Lake developers, ​ including senior developers and researchers from Intel Corporation,​ to prototype new or refine existing privacy mechanisms. Mechanisms may include cryptographic techniques such as zero knowledge proofs and trusted execution such as SGX.  +
-  * **Additional Information:​** +
-        * Code: https://​​hyperledger/​sawtooth-core +
-        * Docs: http://​​ +
-        * Relevant Papers: +
-          * https://​​2009/​095.pdf +
-          * http://​​wp-content/​uploads/​sites/​29/​2014/​12/​Anonymous-Identities-for-Permissioned-Blockchains2.pdf  +
-  * **Desirable Skills:**  +
-       * Research or development experience with anonymous credential systems +
-       * Graduate level understanding of Abstract Algebra +
-       * Fluency with at least one programming language.  +
-       * Experience with Python will be helpful but not required +
-  * **Learning Objectives:​** +
-        * Learning how to contribute in a large open source project. +
-        * Learning to define security requirements in an addressable way. +
-        * Learning to implement security and privacy features in distributed systems. +
-        * Learning state of the approaches to privacy. +
-  * **Expected Outcome: ** +
-        * New software module or capability to provide privacy in blockchains +
-        * A report designing a new privacy capability for blockchains +
-        * Other substantive deliverable options can be discussed. +
-  * **Level of Difficulty: **Difficult +
-  * **Mentor(s):​ **Dan Middleton, Intel, ​[[]] +
- +
----- +
-**Project 5:** **Design and Implement Blockchain Clustering Platform for Hyperledger** +
-  * **Description:​ ** Cello is a Hyperledger project that can manage thousands of blockchains and provide them to developers. It's designed and implemented in Python. Currently we are designing and implementing new features (e.g., better scheduling performance,​ better UI) to support Hyperledger Fabric, Hyperledger Sawtoothlake and Hyperledger iroha better. Anyone who's interested in Blockchain techniques, clustering, cloud computing, UI design, or Python coding, is always welcome. +
-  * **Additional Information:​** Existing project is at +
-  * **Desirable Skills:** +
-        * For backend developers: You'd better know a little about Python. And cloud knowledge (e.g., docker, distributed system) is welcome;  +
-        * For frontend developers: HTML+javascript,​ and some basic knowledge on popular frameworks, e.g., react. +
-  * **Learning Objectives:​**You will learn how to work inside open-source community, the key techniques in those large-scale system (e.g., cloud computing, clustering),​ blockchain. It's limitless, with more effort to pay, more you will learn. +
-  * **Expected Outcome: **Hyperledger Cello with new features. +
-  * **Level of Difficulty: **Medium +
-  * **Mentor(s):​ **Baohua Yang, IBM,​[[|]] and Haitao Yue, IBM, [[|]] +
- +
internship/project_ideas.1520277601.txt.gz · Last modified: 2018/03/05 19:20 by Min Yu