Hyperledger Sawtooth for Application Developers

بواسطة: edX

Overview

Over the past few years, there has been a lot of talk about blockchain and its potential in the enterprise landscape. Today, blockchain is no longer a hype: it has become a reality, and is transforming processes and how enterprises do business, across a wide range of industries.

Hyperledger Sawtooth is an open source project under the Hyperledger umbrella, and works as an enterprise-level blockchain system used for building, deploying, and running distributed ledger applications and networks.

The Hyperledger Sawtooth for Application Developers course starts with the basics of blockchain technology and the concepts of permissioned networks, then describes the important features of Hyperledger Sawtooth.

It includes a sample distributed application, Sawtooth Simple Supply, that is based on a simplified supply chain example. This blockchain application includes a web-app frontend, a transaction processor (the equivalent of a smart contract) for the blockchain business logic, and a custom REST API for communication. Learning how to code this sample application will teach you about important Hyperledger Sawtooth concepts and will help you understand how to create your own enterprise-level Hyperledger Sawtooth application.

The 2019 Technology Industry Innovation conducted by KPMG around the adoption of blockchain technologies suggests that 41 percent of businesses are likely to adopt and implement blockchain into their business operations in the next three years. Another important aspect revealed by this survey is that 48 percent of enterprises believe that blockchain will change the way they conduct and manage their business activities in the near future.

Want to be part of the blockchain revolution? Enroll today and learn all about developing applications with Hyperledger Sawtooth.

Syllabus

  • Welcome!
  • Chapter 1. Blockchain Basics
  • Chapter 2. Hyperledger Sawtooth
  • Chapter 3. Overview of Application Development
  • Chapter 4. Creating an Application: Sawtooth Simple Supply
  • Chapter 5. Running the Simple Supply Application
  • Conclusions
  • Final Exam

Taught by

Darian Plumb, Anne Chenette and Daniel Anderson

Hyperledger Sawtooth for Application Developers
الذهاب الي الدورة

Hyperledger Sawtooth for Application Developers

بواسطة: edX

  • edX
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • intermediate
  • English
8.1.2PHP Version978msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (633ms)
    • Application (342ms)
    • 1 x Booting (64.77%)
      633.19ms
      1 x Application (34.99%)
      342.03ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed9.02ms
      • select * from `courses` where `slug_ar` = 'hyperledger-sawtooth-for-application-developers' limit 1
        7.29ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. hyperledger-sawtooth-for-application-developers
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-07-25 19:04:01' where `id` = 889
        570μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-25 19:04:01
        • 1. 889
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (91)
        240μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (17) and `institutions`.`deleted_at` is null
        240μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (1) and `providers`.`deleted_at` is null
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 883 limit 1
        270μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 883
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        pn8uZq6eonVbkiLwKrnRXagOSNPHWr9MMtAbi6Ja
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/hyperl...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/hyperledger-sawtooth-for-application-developers
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.25" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.25" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "964deba89a21ebbc-YYZ" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.25" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.25" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "964deba89a21ebbc-YYZ" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "37304" "REMOTE_ADDR" => "172.70.80.220" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/hyperledger-sawtooth-for-application-developers" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1753470240.3323 "REQUEST_TIME" => 1753470240 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Fri, 25 Jul 2025 19:04:01 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImU0ZlVFem5GblNDTDdaM09pYTZ5OGc9PSIsInZhbHVlIjoiWEVWUkQyT1VCV3VCRFpsZmhLTllSZFZscGdHVEtjY1A5bUV1Q1hjcEpLc2NJUXRYbWxWSnlCUDdQZWpKRTVHT0plU3hzWnRUWmI3bU5HeTczeG02QWQ3QmVXMFNZOEl5SjNXbUpzcXM1dUltcTlwYVZiMzdVVnVPNWIwckNaZmQiLCJtYWMiOiJjODBiMDlhZmEwNGNiYjZkMjI5N2U5NjEwMjczMjdjNThhMDY4MWNiMDA5ZTZiYTQ0MDk5ODg1N2IwMDVhNWQwIiwidGFnIjoiIn0%3D; expires=Fri, 25 Jul 2025 21:04:01 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImU0ZlVFem5GblNDTDdaM09pYTZ5OGc9PSIsInZhbHVlIjoiWEVWUkQyT1VCV3VCRFpsZmhLTllSZFZscGdHVEtjY1A5bUV1Q1hjcEpLc2NJUXRYbWxWSnlCUDdQZWpKRTVHT0plU3hzW" 1 => "laravel_session=eyJpdiI6InJtYmZaTGZ0ckdFQlVBdS9LNm8vdWc9PSIsInZhbHVlIjoiVEVpZEJwbE5DTXplQmVqNHJ0Q010cmFQVXFzSlZ2VE1aVmsxWS91ZWpiSjkrMmdqT2J4ZXdrdi9xRnp0S1pkRkdLdFpxa0VGbGd0ck9sMTRmTm1NaG1FQTN2NFFjWkVyS3R6MkVWd3I2dEFCL1QzL01pV0ZTamE4c2xZWk9wS1QiLCJtYWMiOiI0MDdiZmVmMDFjYzI5Y2U3YTg4YmFlYmM1NTk1Zjk1YTBkZmRmNTlkZjk3NjliYmZmYjhmMmQ3OTUxM2NlM2QzIiwidGFnIjoiIn0%3D; expires=Fri, 25 Jul 2025 21:04:01 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InJtYmZaTGZ0ckdFQlVBdS9LNm8vdWc9PSIsInZhbHVlIjoiVEVpZEJwbE5DTXplQmVqNHJ0Q010cmFQVXFzSlZ2VE1aVmsxWS91ZWpiSjkrMmdqT2J4ZXdrdi9xRnp0S1pkRkdL" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImU0ZlVFem5GblNDTDdaM09pYTZ5OGc9PSIsInZhbHVlIjoiWEVWUkQyT1VCV3VCRFpsZmhLTllSZFZscGdHVEtjY1A5bUV1Q1hjcEpLc2NJUXRYbWxWSnlCUDdQZWpKRTVHT0plU3hzWnRUWmI3bU5HeTczeG02QWQ3QmVXMFNZOEl5SjNXbUpzcXM1dUltcTlwYVZiMzdVVnVPNWIwckNaZmQiLCJtYWMiOiJjODBiMDlhZmEwNGNiYjZkMjI5N2U5NjEwMjczMjdjNThhMDY4MWNiMDA5ZTZiYTQ0MDk5ODg1N2IwMDVhNWQwIiwidGFnIjoiIn0%3D; expires=Fri, 25-Jul-2025 21:04:01 GMT; path=/XSRF-TOKEN=eyJpdiI6ImU0ZlVFem5GblNDTDdaM09pYTZ5OGc9PSIsInZhbHVlIjoiWEVWUkQyT1VCV3VCRFpsZmhLTllSZFZscGdHVEtjY1A5bUV1Q1hjcEpLc2NJUXRYbWxWSnlCUDdQZWpKRTVHT0plU3hzW" 1 => "laravel_session=eyJpdiI6InJtYmZaTGZ0ckdFQlVBdS9LNm8vdWc9PSIsInZhbHVlIjoiVEVpZEJwbE5DTXplQmVqNHJ0Q010cmFQVXFzSlZ2VE1aVmsxWS91ZWpiSjkrMmdqT2J4ZXdrdi9xRnp0S1pkRkdLdFpxa0VGbGd0ck9sMTRmTm1NaG1FQTN2NFFjWkVyS3R6MkVWd3I2dEFCL1QzL01pV0ZTamE4c2xZWk9wS1QiLCJtYWMiOiI0MDdiZmVmMDFjYzI5Y2U3YTg4YmFlYmM1NTk1Zjk1YTBkZmRmNTlkZjk3NjliYmZmYjhmMmQ3OTUxM2NlM2QzIiwidGFnIjoiIn0%3D; expires=Fri, 25-Jul-2025 21:04:01 GMT; path=/; httponlylaravel_session=eyJpdiI6InJtYmZaTGZ0ckdFQlVBdS9LNm8vdWc9PSIsInZhbHVlIjoiVEVpZEJwbE5DTXplQmVqNHJ0Q010cmFQVXFzSlZ2VE1aVmsxWS91ZWpiSjkrMmdqT2J4ZXdrdi9xRnp0S1pkRkdL" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "pn8uZq6eonVbkiLwKrnRXagOSNPHWr9MMtAbi6Ja" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/hyperledger-sawtooth-for-application-developers" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]