diff --git a/docs/learn/intro/03-sdk-design.md b/docs/learn/intro/03-sdk-design.md index 563dc11eba..e2edcd4efb 100644 --- a/docs/learn/intro/03-sdk-design.md +++ b/docs/learn/intro/03-sdk-design.md @@ -13,6 +13,8 @@ Here is a simplified view of how transactions are handled by an application buil 3. Route each message to the appropriate module so that it can be processed. 4. Commit state changes. +![main-components](main-components.png) + ## `baseapp` `baseapp` is the boilerplate implementation of a Cosmos SDK application. It comes with an implementation of the ABCI to handle the connection with the underlying consensus engine. Typically, a Cosmos SDK application extends `baseapp` by embedding it in [`app.go`](../beginner/00-app-anatomy.md#core-application-file). diff --git a/docs/learn/intro/Maincomps.excalidraw b/docs/learn/intro/Maincomps.excalidraw new file mode 100644 index 0000000000..289d1010aa --- /dev/null +++ b/docs/learn/intro/Maincomps.excalidraw @@ -0,0 +1,603 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "TT806C8wYC1giNDrB3j0H", + "type": "rectangle", + "x": 392.3992464191551, + "y": 377.59281643418194, + "width": 368.5810298094963, + "height": 300.3445584269905, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b20", + "roundness": { + "type": 3 + }, + "seed": 1095376796, + "version": 379, + "versionNonce": 395388196, + "isDeleted": false, + "boundElements": null, + "updated": 1717946215725, + "link": null, + "locked": false + }, + { + "id": "sTDd-IcaEk93yvorkOjjx", + "type": "rectangle", + "x": 425.6105707309967, + "y": 407.3907865247813, + "width": 291.7422935286128, + "height": 57.093323969660304, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ebfbee", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b21", + "roundness": { + "type": 3 + }, + "seed": 534261156, + "version": 200, + "versionNonce": 320694564, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "DfQ_v0mZK9I65EtQ6glTr" + } + ], + "updated": 1717946141898, + "link": null, + "locked": false + }, + { + "id": "DfQ_v0mZK9I65EtQ6glTr", + "type": "text", + "x": 540.1377462428617, + "y": 425.93744850961144, + "width": 62.68794250488281, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b22", + "roundness": null, + "seed": 1825368092, + "version": 129, + "versionNonce": 1358928420, + "isDeleted": false, + "boundElements": null, + "updated": 1717945861493, + "link": null, + "locked": false, + "text": "baseapp", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "sTDd-IcaEk93yvorkOjjx", + "originalText": "baseapp", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "0eOjlptq2QPkgMZD4ilw_", + "type": "rectangle", + "x": 423.5441903728455, + "y": 483.4335837047473, + "width": 305.81281311550566, + "height": 100.72456256899451, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#e7f5ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b23", + "roundness": { + "type": 3 + }, + "seed": 774424100, + "version": 711, + "versionNonce": 1241388444, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "To8Ifauc4u3pXYXE-BuBm" + }, + { + "id": "5U3m__cEk0384Je1xS8Lt", + "type": "arrow" + } + ], + "updated": 1717946136493, + "link": null, + "locked": false + }, + { + "id": "To8Ifauc4u3pXYXE-BuBm", + "type": "text", + "x": 537.3546267767897, + "y": 488.4335837047473, + "width": 78.19194030761719, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b24", + "roundness": null, + "seed": 268281380, + "version": 653, + "versionNonce": 240902940, + "isDeleted": false, + "boundElements": null, + "updated": 1717946115508, + "link": null, + "locked": false, + "text": "multistore", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": "0eOjlptq2QPkgMZD4ilw_", + "originalText": "multistore", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "6ZMBBGC0e67HCiZuw1ZGQ", + "type": "rectangle", + "x": 433.0074470871197, + "y": 611.2583420078661, + "width": 296.0816922807304, + "height": 40.43217567449267, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ebfbee", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b25", + "roundness": { + "type": 3 + }, + "seed": 73209500, + "version": 210, + "versionNonce": 506281508, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "lDvSHg5T_n2nFJyxXar85" + }, + { + "id": "5U3m__cEk0384Je1xS8Lt", + "type": "arrow" + } + ], + "updated": 1717946145151, + "link": null, + "locked": false + }, + { + "id": "lDvSHg5T_n2nFJyxXar85", + "type": "text", + "x": 550.5683127587349, + "y": 621.4744298451124, + "width": 60.9599609375, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b26", + "roundness": null, + "seed": 169830436, + "version": 101, + "versionNonce": 99685404, + "isDeleted": false, + "boundElements": null, + "updated": 1717946143284, + "link": null, + "locked": false, + "text": "Modules", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "6ZMBBGC0e67HCiZuw1ZGQ", + "originalText": "Modules", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "5U3m__cEk0384Je1xS8Lt", + "type": "arrow", + "x": 730.0891393678501, + "y": 627.8029150748303, + "width": 33.89886827099872, + "height": 77.8473208768944, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b27", + "roundness": { + "type": 2 + }, + "seed": 2017356060, + "version": 847, + "versionNonce": 601341212, + "isDeleted": false, + "boundElements": null, + "updated": 1717946143287, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 33.89886827099872, + -59.624776904124815 + ], + [ + 0.2678641205010308, + -77.8473208768944 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "6ZMBBGC0e67HCiZuw1ZGQ", + "focus": 0.9211394284163724, + "gap": 1 + }, + "endBinding": { + "elementId": "0eOjlptq2QPkgMZD4ilw_", + "focus": -0.504700685555249, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "ECiME4kCyLcElqpESHieN", + "type": "text", + "x": 779.3728577032684, + "y": 549.0028937731206, + "width": 230.17587280273438, + "height": 40, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b28", + "roundness": null, + "seed": 1031090332, + "version": 173, + "versionNonce": 153810724, + "isDeleted": false, + "boundElements": null, + "updated": 1717946206425, + "link": null, + "locked": false, + "text": "Each KVstore \nmanaged by keeper of Module", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Each KVstore \nmanaged by keeper of Module", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "9gSP2Ihxnhrj8VPzU3iMs", + "type": "rectangle", + "x": 440.01400715336973, + "y": 528.7255798511883, + "width": 82.2687246664696, + "height": 43.508786429962356, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#fff5f5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b29", + "roundness": { + "type": 3 + }, + "seed": 862728356, + "version": 81, + "versionNonce": 2003221028, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "bo-ZnZOJ2RMYEwiQDJwhQ" + } + ], + "updated": 1717946171042, + "link": null, + "locked": false + }, + { + "id": "bo-ZnZOJ2RMYEwiQDJwhQ", + "type": "text", + "x": 451.95639103201466, + "y": 540.4799730661695, + "width": 58.38395690917969, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#fff5f5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b29V", + "roundness": null, + "seed": 1054504484, + "version": 32, + "versionNonce": 374592932, + "isDeleted": false, + "boundElements": null, + "updated": 1717946171043, + "link": null, + "locked": false, + "text": "kvstore", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "9gSP2Ihxnhrj8VPzU3iMs", + "originalText": "kvstore", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "sS09HXQCLT5o584RLcoh0", + "type": "rectangle", + "x": 535.7029587057802, + "y": 526.7472119897728, + "width": 85.49840063365426, + "height": 45.291996146440965, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#fff5f5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2A", + "roundness": { + "type": 3 + }, + "seed": 1969890340, + "version": 163, + "versionNonce": 795200668, + "isDeleted": false, + "boundElements": null, + "updated": 1717946178372, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 243, + "versionNonce": 1959742876, + "index": "b2B", + "isDeleted": false, + "id": "dOSADw14E7lwG6QVycTWj", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 634.8832415027643, + "y": 525.0060952065161, + "strokeColor": "#1e1e1e", + "backgroundColor": "#fff5f5", + "width": 81.61054425609542, + "height": 44.80601409924611, + "seed": 964534684, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1717946186317, + "link": null, + "locked": false + }, + { + "id": "Jn2VZB4Laog2zIHreQ13v", + "type": "text", + "x": 550.053971904952, + "y": 541.2988719488441, + "width": 58.38395690917969, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#fff5f5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2C", + "roundness": null, + "seed": 268605596, + "version": 81, + "versionNonce": 271008028, + "isDeleted": false, + "boundElements": null, + "updated": 1717946183225, + "link": null, + "locked": false, + "text": "kvstore", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "kvstore", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "bmEWq6ldGd19BN7P3CPgk", + "type": "text", + "x": 649.2096160538688, + "y": 540.0169508007317, + "width": 58.38395690917969, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#fff5f5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2D", + "roundness": null, + "seed": 1351980700, + "version": 78, + "versionNonce": 1793931548, + "isDeleted": false, + "boundElements": null, + "updated": 1717946190092, + "link": null, + "locked": false, + "text": "kvstore", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "kvstore", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "W3LH6VESuV13qvhxI7mcM", + "type": "text", + "x": 458.21179209642423, + "y": 348.25404197872706, + "width": 219.0238800048828, + "height": 20, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#fff5f5", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b2E", + "roundness": null, + "seed": 100014108, + "version": 34, + "versionNonce": 554727332, + "isDeleted": false, + "boundElements": null, + "updated": 1717946232701, + "link": null, + "locked": false, + "text": "Main components of the sdk", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "Main components of the sdk", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/learn/intro/main-components.png b/docs/learn/intro/main-components.png new file mode 100644 index 0000000000..fa82eb9bb0 Binary files /dev/null and b/docs/learn/intro/main-components.png differ