Becoming a Hyperledger Aries Developer

بواسطة: edX

Overview

Data is driving our world today. However, we hear about data breaches and identity thefts all the time. Trust on the Internet is broken, and it needs to be fixed. As such, it is imperative that we adopt a new approach to identity management, and ensure data security and user privacy through tamper-proof transactions and infrastructures.

Blockchain-based decentralized identity management is revolutionizing this space. The four Hyperledger open source Identity projects, Aries, Indy, AnonCreds, and Ursa, provide the foundation for guilding distributed applications using authentic data. Together, the projects include protocol specifications and open source tools, libraries, and reusable components for establishing secure, peer-to-peer messaging channels that can be used for issuing, holding, presenting, and verifying verifiable credentials. These capabilities enable the creation and use of independent digital identities rooted on blockchains or other distributed ledgers that are interoperable across administrative domains, applications, and any other data silo.

While this course will mention Ursa and dive a bit into Indy and AnonCreds, its main focus is on Aries, and the possibilities Aries brings for building applications on a solid foundation of digital trust. This focus will be explained further in the course but for now, rest assured: if you want to start developing applications that are identity focused and using the blockchain, this is where you need to be.

Syllabus

  • Welcome!
  • Chapter 1. Overview
  • Chapter 2. Exploring Aries and Aries Agents
  • Chapter 3. Running a Network for Aries Development
  • Chapter 4. Developing Aries Controllers
  • Chapter 5. Digging Deeper-The Aries Protocols
  • Chapter 6. DIDCom Message Routing
  • Chapter 7. Mobile Wallets
  • Chapter 8. Planning for Production
  • Chapter 9. What To Do Next
  • Final Exam (Verified Track only)

Taught by

Stephen Curran and Carol Howard

Becoming a Hyperledger Aries Developer
الذهاب الي الدورة

Becoming a Hyperledger Aries Developer

بواسطة: edX

  • edX
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • beginner
  • English
8.1.2PHP Version1.09sRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (690ms)
    • Application (394ms)
    • 1 x Booting (63.53%)
      690.36ms
      1 x Application (36.22%)
      393.60ms
      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 executed10.76ms
      • select * from `courses` where `slug_ar` = 'becoming-a-hyperledger-aries-developer' limit 1
        8.05ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. becoming-a-hyperledger-aries-developer
        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 04:39:27' where `id` = 848
        1.34ms/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-25 04:39:27
        • 1. 848
        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)
        210μ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
        230μ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
        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 `html_files` where `html_files`.`id` = 842 limit 1
        450μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 842
        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
        A2lutwdNspIzfqQ2F1SBFroSyRp467H5azutIPnH
        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/becomi...
        _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/becoming-a-hyperledger-aries-developer
        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.81" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.81" ] "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 => "9648f93709c7ac3a-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.81" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.81" "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" => "9648f93709c7ac3a-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" => "49496" "REMOTE_ADDR" => "172.69.130.209" "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/becoming-a-hyperledger-aries-developer" "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" => 1753418366.8071 "REQUEST_TIME" => 1753418366 ]
        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 04:39:27 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlJEYjdscHB5ZnRSSE1VVktxWGRleGc9PSIsInZhbHVlIjoidEJJQisvYUs2NVhZZUk3TnVMK2tXMWVKeVB2aTJ4SEk0WUdOVGplQXRhYjgyWno1ZlNMenczU0ZZY2ttakUrWVdZYXVsNFNhSEJUTXRkL2ZJSXhmc091SVkzYndZdndUa25nS2F2YzJCZXFRNjJwdHFkYXZzaE1JWU96cWpLZ1ciLCJtYWMiOiJjMjY5MWViMzhjZjRjYWRkZDEyOTEyMjhmMjI0M2M1YzI3YTgyZjcxOWM3ZDViYWJkOGU2NDkyOTY2OWM3YjdjIiwidGFnIjoiIn0%3D; expires=Fri, 25 Jul 2025 06:39:27 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlJEYjdscHB5ZnRSSE1VVktxWGRleGc9PSIsInZhbHVlIjoidEJJQisvYUs2NVhZZUk3TnVMK2tXMWVKeVB2aTJ4SEk0WUdOVGplQXRhYjgyWno1ZlNMenczU0ZZY2ttakUrWVdZYXVsN" 1 => "laravel_session=eyJpdiI6IjNRN3U4RktmOUNvTEpjSUlQcnFBYWc9PSIsInZhbHVlIjoiT1ZXSjRJUG1EU0ZuN2hYV2t2UWRrTW5jY3pBZDNTVnJ0MUx2d0k5RVhYUjQranh1RHVCaDBJc2txVE43N2V2MDAwRCtlcG1iaVlZaHBYZmlwVjhiL2pLYVNYMk4rMzMrYnJHaGFHL04xK0k3TytZZjNFTFFpbmQzOW9BZDBFUXkiLCJtYWMiOiI5OWM3ZWM0NjkxYjc2NzRkM2Y4NGI1MjJhMWEwYmZkY2JiN2M5NTNlNjkzMjM2MGQwYTliNTkyY2UzZjFiNWNhIiwidGFnIjoiIn0%3D; expires=Fri, 25 Jul 2025 06:39:27 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjNRN3U4RktmOUNvTEpjSUlQcnFBYWc9PSIsInZhbHVlIjoiT1ZXSjRJUG1EU0ZuN2hYV2t2UWRrTW5jY3pBZDNTVnJ0MUx2d0k5RVhYUjQranh1RHVCaDBJc2txVE43N2V2MDAw" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlJEYjdscHB5ZnRSSE1VVktxWGRleGc9PSIsInZhbHVlIjoidEJJQisvYUs2NVhZZUk3TnVMK2tXMWVKeVB2aTJ4SEk0WUdOVGplQXRhYjgyWno1ZlNMenczU0ZZY2ttakUrWVdZYXVsNFNhSEJUTXRkL2ZJSXhmc091SVkzYndZdndUa25nS2F2YzJCZXFRNjJwdHFkYXZzaE1JWU96cWpLZ1ciLCJtYWMiOiJjMjY5MWViMzhjZjRjYWRkZDEyOTEyMjhmMjI0M2M1YzI3YTgyZjcxOWM3ZDViYWJkOGU2NDkyOTY2OWM3YjdjIiwidGFnIjoiIn0%3D; expires=Fri, 25-Jul-2025 06:39:27 GMT; path=/XSRF-TOKEN=eyJpdiI6IlJEYjdscHB5ZnRSSE1VVktxWGRleGc9PSIsInZhbHVlIjoidEJJQisvYUs2NVhZZUk3TnVMK2tXMWVKeVB2aTJ4SEk0WUdOVGplQXRhYjgyWno1ZlNMenczU0ZZY2ttakUrWVdZYXVsN" 1 => "laravel_session=eyJpdiI6IjNRN3U4RktmOUNvTEpjSUlQcnFBYWc9PSIsInZhbHVlIjoiT1ZXSjRJUG1EU0ZuN2hYV2t2UWRrTW5jY3pBZDNTVnJ0MUx2d0k5RVhYUjQranh1RHVCaDBJc2txVE43N2V2MDAwRCtlcG1iaVlZaHBYZmlwVjhiL2pLYVNYMk4rMzMrYnJHaGFHL04xK0k3TytZZjNFTFFpbmQzOW9BZDBFUXkiLCJtYWMiOiI5OWM3ZWM0NjkxYjc2NzRkM2Y4NGI1MjJhMWEwYmZkY2JiN2M5NTNlNjkzMjM2MGQwYTliNTkyY2UzZjFiNWNhIiwidGFnIjoiIn0%3D; expires=Fri, 25-Jul-2025 06:39:27 GMT; path=/; httponlylaravel_session=eyJpdiI6IjNRN3U4RktmOUNvTEpjSUlQcnFBYWc9PSIsInZhbHVlIjoiT1ZXSjRJUG1EU0ZuN2hYV2t2UWRrTW5jY3pBZDNTVnJ0MUx2d0k5RVhYUjQranh1RHVCaDBJc2txVE43N2V2MDAw" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "A2lutwdNspIzfqQ2F1SBFroSyRp467H5azutIPnH" "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/becoming-a-hyperledger-aries-developer" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]