This commit is contained in:
Joe 2022-10-27 15:51:14 +01:00
commit 15ef3b64f8
36 changed files with 1067 additions and 599 deletions

View File

@ -12,6 +12,7 @@
"format:fix": "prettier . --write --config .prettierrc --ignore-path .prettierignore --loglevel warn"
},
"dependencies": {
"@chakra-ui/icons": "^2.0.11",
"@chakra-ui/react": "^2.3.2",
"@emotion/react": "^11.10.4",
"@emotion/styled": "^11.10.4",

View File

@ -1,8 +1,8 @@
<svg width="108" height="164" viewBox="0 0 108 164" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M54 162.125V121.846L104.955 92.708L54 162.125Z" stroke="#11866F" stroke-width="3" stroke-linejoin="round"/>
<path d="M54 162.125V121.846L3.04493 92.708L54 162.125Z" stroke="#11866F" stroke-width="3" stroke-linejoin="round"/>
<path d="M53.9998 111.908V60.9531L105.693 83.3225L53.9998 111.908Z" stroke="#11866F" stroke-width="3" stroke-linejoin="round"/>
<path d="M54 111.908V60.9531L2.30645 83.3225L54 111.908Z" stroke="#11866F" stroke-width="3" stroke-linejoin="round"/>
<path d="M105.693 83.1077L53.9998 1.875V60.5906L105.693 83.1077Z" stroke="#11866F" stroke-width="3" stroke-linejoin="round"/>
<path d="M2.30645 83.1077L54 1.875V60.5906L2.30645 83.1077Z" stroke="#11866F" stroke-width="3" stroke-linejoin="round"/>
<svg width="180" height="278" viewBox="0 0 180 278" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M90.0002 276.5V207.379L2.76453 157.376L90.0002 276.5Z" stroke="#11866F" stroke-width="2" stroke-linejoin="round"/>
<path d="M90.0001 276.5V207.379L177.236 157.376L90.0001 276.5Z" stroke="#11866F" stroke-width="2" stroke-linejoin="round"/>
<path d="M89.9999 190.325V102.883L1.5 141.27L89.9999 190.325Z" stroke="#11866F" stroke-width="2" stroke-linejoin="round"/>
<path d="M90.0001 190.325V102.883L178.5 141.27L90.0001 190.325Z" stroke="#11866F" stroke-width="2" stroke-linejoin="round"/>
<path d="M1.5 140.901L89.9999 1.5V102.26L1.5 140.901Z" stroke="#11866F" stroke-width="2" stroke-linejoin="round"/>
<path d="M178.5 140.901L90.0001 1.5V102.26L178.5 140.901Z" stroke="#11866F" stroke-width="2" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 834 B

After

Width:  |  Height:  |  Size: 837 B

View File

@ -1,35 +1,23 @@
import {
Table,
Thead,
Tr,
Th,
TableContainer,
Text,
Tbody,
Td,
} from '@chakra-ui/react';
import { Table, Thead, Tr, Th, TableContainer, Text, Tbody, Td } from '@chakra-ui/react';
import { FC } from 'react';
interface Props {
columnHeaders: string[]
data: any
columnHeaders: string[];
data: any;
}
export const DataTable: FC<Props> = ({
columnHeaders,
data,
}) => {
export const DataTable: FC<Props> = ({ columnHeaders, data }) => {
return (
<TableContainer
// Note: This wont work on firefox, we are ok with this.
css={{
"&::-webkit-scrollbar": {
'&::-webkit-scrollbar': {
borderTop: '2px solid #11866f',
height: 18
},
"&::-webkit-scrollbar-thumb": {
background: "#11866f",
},
'&::-webkit-scrollbar-thumb': {
background: '#11866f'
}
}}
pt={4}
pb={4}
@ -37,59 +25,44 @@ export const DataTable: FC<Props> = ({
<Table variant='unstyled'>
<Thead>
<Tr>
{
columnHeaders.map((columnHeader, idx) => {
return (
<Th
key={idx}
textTransform='none'
minW={'130.5px'}
px={4}
{columnHeaders.map((columnHeader, idx) => {
return (
<Th key={idx} textTransform='none' minW={'130.5px'} px={4}>
<Text
fontFamily='"JetBrains Mono", monospace'
fontWeight={700}
fontSize='md'
color='#868b87'
>
<Text
fontFamily='"JetBrains Mono", monospace'
fontWeight={700}
fontSize='md'
color='#868b87'
>
{columnHeader}
</Text>
</Th>
)
})
}
{columnHeader}
</Text>
</Th>
);
})}
</Tr>
</Thead>
<Tbody>
{
data.map((item: any, idx: number) => {
return (
<Tr
key={idx}
// TODO: Get new background color from nuno for hover
transition={'all 0.5s'}
_hover={{background: 'green.50', transition: 'all 0.5s'}}
>
{
columnHeaders.map((columnHeader, idx) => {
// TODO: Make the font size smaller (refer to design system)
return (
<Td
key={idx}
px={4}
fontSize='13px'
>
{item[columnHeader.toLowerCase()]}
</Td>
)
})
}
</Tr>
)
})
}
{data.map((item: any, idx: number) => {
return (
<Tr
key={idx}
// TODO: Get new background color from nuno for hover
transition={'all 0.5s'}
_hover={{ background: 'green.50', transition: 'all 0.5s' }}
>
{columnHeaders.map((columnHeader, idx) => {
// TODO: Make the font size smaller (refer to design system)
return (
<Td key={idx} px={4} fontSize='13px'>
{item[columnHeader.toLowerCase()]}
</Td>
);
})}
</Tr>
);
})}
</Tbody>
</Table>
</TableContainer>
)
}
);
};

View File

@ -0,0 +1,109 @@
import { Box, Flex, Input, InputGroup, Link, Stack, Text } from '@chakra-ui/react';
import { FC } from 'react';
import NextLink from 'next/link';
import { HamburguerIcon, LensIcon, MoonIcon } from '../UI/icons';
import { DOCS_PAGE, DOWNLOADS_PAGE } from '../../constants';
export const Header: FC = () => {
return (
<Flex
mb={4}
border='2px solid'
borderColor='brand.light.primary'
justifyContent='space-between'
>
<Stack
p={4}
justifyContent='center'
alignItems='flex-start'
borderRight={{ base: 'none', sm: '2px solid #11866f'}}
flexGrow={2}
>
<Text textStyle='header-font'>
go-ethereum
</Text>
</Stack>
<Flex>
{/* DOWNLOADS */}
<Stack
p={4}
justifyContent='center'
borderRight='2px solid'
borderColor='brand.light.primary'
display={{ base: 'none', md: 'block' }}
color='brand.light.primary'
_hover={{
textDecoration: 'none',
bg: 'brand.light.primary',
color: 'yellow.50 !important'
}}
>
<NextLink href={DOWNLOADS_PAGE} passHref>
<Link _hover={{ textDecoration: 'none' }}>
<Text textStyle='header-font' textTransform='uppercase'>
downloads
</Text>
</Link>
</NextLink>
</Stack>
{/* DOCUMENTATION */}
<Stack
p={4}
justifyContent='center'
borderRight={{ base: 'none', md: '2px solid #11866f' }}
display={{ base: 'none', md: 'block' }}
color='brand.light.primary'
_hover={{
textDecoration: 'none',
bg: 'brand.light.primary',
color: 'yellow.50 !important'
}}
>
<NextLink href={DOCS_PAGE} passHref>
<Link _hover={{ textDecoration: 'none' }}>
<Text textStyle='header-font' textTransform='uppercase'>
documentation
</Text>
</Link>
</NextLink>
</Stack>
{/* SEARCH */}
<Stack
p={4}
display={{ base: 'none', md: 'block' }}
borderRight={{ base: 'none', md: '2px solid #11866f' }}
>
<InputGroup>
<Input
variant='unstyled'
placeholder='search'
size='md'
_placeholder={{ color: 'brand.light.primary', fontStyle: 'italic' }}
/>
<Stack pl={4} justifyContent='center' alignItems='center'>
<LensIcon />
</Stack>
</InputGroup>
</Stack>
{/* DARK MODE SWITCH */}
<Box
p={4}
borderRight={{ base: '2px solid #11866f', md: 'none' }}
>
<MoonIcon />
</Box>
{/* HAMBURGUER MENU */}
<Box p={4} display={{ base: 'block', md: 'none' }}>
<HamburguerIcon />
</Box>
</Flex>
</Flex>
);
};

View File

@ -2,16 +2,16 @@ import { Box, Button, Image, Link, Stack, HStack, Text } from '@chakra-ui/react'
import { FC } from 'react';
import NextLink from 'next/link';
import { DOWNLOAD_HEADER_BUTTONS } from '../../../constants'
import { DOWNLOAD_HEADER_BUTTONS } from '../../../constants';
interface DownloadsHero {
currentBuildName: string
currentBuildVersion: string
linuxBuildURL: string
macOSBuildURL: string
releaseNotesURL: string
sourceCodeURL: string
windowsBuildURL: string
currentBuildName: string;
currentBuildVersion: string;
linuxBuildURL: string;
macOSBuildURL: string;
releaseNotesURL: string;
sourceCodeURL: string;
windowsBuildURL: string;
}
export const DownloadsHero: FC<DownloadsHero> = ({
@ -23,22 +23,19 @@ export const DownloadsHero: FC<DownloadsHero> = ({
sourceCodeURL,
windowsBuildURL
}) => {
DOWNLOAD_HEADER_BUTTONS.linuxBuild.buildURL = linuxBuildURL
DOWNLOAD_HEADER_BUTTONS.macOSBuild.buildURL = macOSBuildURL
DOWNLOAD_HEADER_BUTTONS.windowsBuild.buildURL = windowsBuildURL
DOWNLOAD_HEADER_BUTTONS.sourceCode.buildURL = sourceCodeURL
DOWNLOAD_HEADER_BUTTONS.linuxBuild.buildURL = linuxBuildURL;
DOWNLOAD_HEADER_BUTTONS.macOSBuild.buildURL = macOSBuildURL;
DOWNLOAD_HEADER_BUTTONS.windowsBuild.buildURL = windowsBuildURL;
DOWNLOAD_HEADER_BUTTONS.sourceCode.buildURL = sourceCodeURL;
return (
<Stack border='3px solid' borderColor='brand.light.primary' py={4} px={4}>
<Stack alignItems='center'>
<Image src='/images/pages/gopher-downloads-front-light.svg' alt='Gopher plugged in' />
<Image src='/images/pages/gopher-downloads-front-light.svg' alt='Gopher plugged in' />
</Stack>
<Box mb={4}>
<Box
as='h1'
textStyle='h1'
>
<Box as='h1' textStyle='h1'>
Download go-ethereum
</Box>
@ -52,52 +49,37 @@ export const DownloadsHero: FC<DownloadsHero> = ({
</Text>
<Text mb={4}>
You can download the latest 64-bit stable release of Geth for our primary platforms below. Packages for all supported platforms, as well as develop builds, can be found further down the page. If you&apos;re looking to install Geth and/or associated tools via your favorite package manager, please check our installation guide.
You can download the latest 64-bit stable release of Geth for our primary platforms below.
Packages for all supported platforms, as well as develop builds, can be found further down
the page. If you&apos;re looking to install Geth and/or associated tools via your favorite
package manager, please check our installation guide.
</Text>
{
Object.keys(DOWNLOAD_HEADER_BUTTONS).map((key: string) => {
return (
<NextLink
key={key}
href={DOWNLOAD_HEADER_BUTTONS[key].buildURL}
passHref
>
<Button
as='a'
variant='primary'
width={{ base: '100%' }}
p={8}
mb={4}
>
<HStack spacing={4}>
<Stack alignItems='center'>
<Image
src={DOWNLOAD_HEADER_BUTTONS[key].image}
alt={DOWNLOAD_HEADER_BUTTONS[key].imageAlt}
/>
</Stack>
<Box>
<Text textStyle='downloads-button-label'>
For {DOWNLOAD_HEADER_BUTTONS[key].name}
</Text>
<Text textStyle='downloads-button-label'>
geth {currentBuildName}
</Text>
</Box>
</HStack>
</Button>
</NextLink>
)
})
}
{Object.keys(DOWNLOAD_HEADER_BUTTONS).map((key: string) => {
return (
<NextLink key={key} href={DOWNLOAD_HEADER_BUTTONS[key].buildURL} passHref>
<Button as='a' variant='primary' width={{ base: '100%' }} p={8} mb={4}>
<HStack spacing={4}>
<Stack alignItems='center'>
<Image
src={DOWNLOAD_HEADER_BUTTONS[key].image}
alt={DOWNLOAD_HEADER_BUTTONS[key].imageAlt}
/>
</Stack>
<Box>
<Text textStyle='downloads-button-label'>
For {DOWNLOAD_HEADER_BUTTONS[key].name}
</Text>
<Text textStyle='downloads-button-label'>geth {currentBuildName}</Text>
</Box>
</HStack>
</Button>
</NextLink>
);
})}
<Box textAlign={'center'}>
<Link
href={releaseNotesURL}
isExternal
variant='light'
>
<Link href={releaseNotesURL} isExternal variant='light'>
Release notes for {currentBuildName} {currentBuildVersion}
</Link>
</Box>

View File

@ -6,16 +6,10 @@ interface Props {
id: string;
imgSrc?: string;
imgAltText?: string;
sectionTitle: string
sectionTitle: string;
}
export const DownloadsSection: FC<Props> = ({
children,
imgSrc,
imgAltText,
sectionTitle,
id
}) => {
export const DownloadsSection: FC<Props> = ({ children, imgSrc, imgAltText, sectionTitle, id }) => {
return (
<Stack border='2px solid' borderColor='brand.light.primary' id={id}>
{!!imgSrc && (
@ -36,9 +30,7 @@ export const DownloadsSection: FC<Props> = ({
</Box>
</Stack>
<Stack spacing={4}>
{children}
</Stack>
<Stack spacing={4}>{children}</Stack>
</Stack>
)
}
);
};

View File

@ -1,99 +1,56 @@
import {
Stack,
Tabs,
TabList,
Tab,
Text,
TabPanel,
TabPanels,
} from '@chakra-ui/react';
import { Stack, Tabs, TabList, Tab, Text, TabPanel, TabPanels } from '@chakra-ui/react';
import { FC } from 'react';
import {
DOWNLOAD_TABS,
DOWNLOAD_TAB_COLUMN_HEADERS
} from '../../../constants'
import { DOWNLOAD_TABS, DOWNLOAD_TAB_COLUMN_HEADERS } from '../../../constants';
import { DataTable } from '../DataTable'
import { DataTable } from '../../UI';
interface Props {
data: any
data: any;
}
export const DownloadsTable: FC<Props> = ({
data
}) => {
export const DownloadsTable: FC<Props> = ({ data }) => {
return (
<Stack
sx={{ mt: '0 !important' }}
borderBottom='2px solid'
borderColor='brand.light.primary'
>
<Stack sx={{ mt: '0 !important' }} borderBottom='2px solid' borderColor='brand.light.primary'>
<Tabs variant='unstyled'>
<TabList
color='brand.light.primary'
bg='green.50'
>
{
DOWNLOAD_TABS.map((tab, idx) => {
return (
<Tab
key={tab}
w={'20%'}
p={4}
_selected={{
bg: 'brand.light.primary',
color: 'yellow.50',
}}
borderBottom='2px solid'
borderRight={
idx === (DOWNLOAD_TABS.length - 1)
?'none'
:'2px solid'
}
borderColor='brand.light.primary'
>
<Text textStyle='download-tab-label'>
{tab}
</Text>
</Tab>
)
})
}
<TabList color='brand.light.primary' bg='green.50'>
{DOWNLOAD_TABS.map((tab, idx) => {
return (
<Tab
key={tab}
w={'20%'}
p={4}
_selected={{
bg: 'brand.light.primary',
color: 'yellow.50'
}}
borderBottom='2px solid'
borderRight={idx === DOWNLOAD_TABS.length - 1 ? 'none' : '2px solid'}
borderColor='brand.light.primary'
>
<Text textStyle='download-tab-label'>{tab}</Text>
</Tab>
);
})}
</TabList>
<TabPanels>
<TabPanel p={0}>
<DataTable
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS}
data={data}
/>
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} />
</TabPanel>
<TabPanel p={0}>
<DataTable
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS}
data={data}
/>
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} />
</TabPanel>
<TabPanel p={0}>
<DataTable
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS}
data={data}
/>
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} />
</TabPanel>
<TabPanel p={0}>
<DataTable
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS}
data={data}
/>
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} />
</TabPanel>
<TabPanel p={0}>
<DataTable
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS}
data={data}
/>
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} />
</TabPanel>
</TabPanels>
</Tabs>
</Stack>
)
}
);
};

View File

@ -1,3 +1,3 @@
export * from './DownloadsHero';
export * from './DownloadsSection'
export * from './DownloadsTable'
export * from './DownloadsSection';
export * from './DownloadsTable';

View File

@ -3,7 +3,14 @@ import { FC } from 'react';
export const Gopher: FC = () => {
return (
<Stack alignItems='center' p={4} border='2px solid' borderColor='brand.light.primary'>
<Stack
justifyContent='center'
alignItems='center'
p={4}
border='2px solid'
borderColor='brand.light.primary'
h='100%'
>
<Image src='/images/pages/gopher-home-side-mobile.svg' alt='Gopher greeting' />
</Stack>
);

View File

@ -6,13 +6,22 @@ import { DOCS_PAGE, DOWNLOADS_PAGE } from '../../../constants';
export const HomeHero: FC = () => {
return (
<Stack border='2px solid' borderColor='brand.light.primary' px={4} py={{ base: 8, md: 5 }}>
<Stack
border='2px solid'
borderColor='brand.light.primary'
px={4}
py={{ base: 8, md: 24, lg: 48 }}
flexGrow={1}
>
<Box mb={4}>
<Box
as='h1'
textStyle='h1'
mb={{ base: 2, md: 4 }}
textAlign={{ base: 'center', md: 'left' }}
fontSize={{ base: '3rem', md: '6rem'}}
lineHeight={{ md: '6rem' }}
fontWeight='500'
>
go-ethereum
</Box>

View File

@ -20,7 +20,7 @@ export const HomeSection: FC<Props> = ({
children
}) => {
return (
<Stack border='2px solid' borderColor='brand.light.primary'>
<Stack border='2px solid' borderColor='brand.light.primary' h='100%'>
{!!imgSrc && (
<Stack alignItems='center' p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
{/* TODO: use NextImage */}
@ -45,6 +45,7 @@ export const HomeSection: FC<Props> = ({
borderBottom='2px solid'
borderColor='brand.light.primary'
sx={{ mt: '0 !important' }}
h='100%'
>
{children}
</Stack>

View File

@ -13,7 +13,10 @@ export const QuickLinks: FC = () => {
</Box>
</Stack>
<Grid templateColumns='repeat(2, 1fr)' sx={{ mt: '0 !important' }}>
<Grid
templateColumns={{ base: 'repeat(2, 1fr)', md: '1fr auto' }}
sx={{ mt: '0 !important' }}
>
{/* get started */}
<GridItem
borderRight='2px solid'

View File

@ -0,0 +1,67 @@
import { Box, Grid, GridItem, Image, Link, Stack, Text } from '@chakra-ui/react';
import { FC } from 'react';
import NextLink from 'next/link';
import { ETHEREUM_ORG_URL } from '../../../constants';
interface Props {
children: React.ReactNode;
}
export const WhatIsEthereum: FC<Props> = ({ children }) => {
return (
<Stack border='2px solid' borderColor='brand.light.primary'>
<Grid
templateColumns={{ base: 'repeat(1, 1fr)', md: 'repeat(2, 1fr)' }}
borderBottom={{ base: 'none', md: '2px solid #11866f' }}
>
<GridItem
borderRight={{ base: 'none', md: '2px solid #11866f' }}
order={{ base: 2, md: 1 }}
>
<Stack
p={4}
borderBottom='2px solid'
borderColor='brand.light.primary'
sx={{ mt: '0 !important' }}
>
<Box as='h2' textStyle='h2'>
What is Ethereum
</Box>
</Stack>
<Stack
p={4}
borderBottom={{ base: '2px solid', md: 'none' }}
borderColor='brand.light.primary'
sx={{ mt: '0 !important' }}
>
{children}
</Stack>
</GridItem>
<GridItem order={{ base: 1, md: 2 }}>
<Stack
justifyContent='center'
alignItems='center'
p={4}
borderBottom={{ base: '2px solid', md: 'none' }}
borderColor='brand.light.primary'
h='100%'
>
{/* TODO: use NextImage */}
<Image src='/images/pages/glyph-home-light.svg' alt='Ethereum glyph' />
</Stack>
</GridItem>
</Grid>
<Stack sx={{ mt: '0 !important' }}>
<NextLink href={ETHEREUM_ORG_URL} passHref>
<Link variant='button-link-secondary' isExternal>
<Text textStyle='home-section-link-label'>Learn more on Ethereum.org</Text>
</Link>
</NextLink>
</Stack>
</Stack>
);
};

View File

@ -0,0 +1,64 @@
import { Box, Grid, GridItem, Image, Link, Stack, Text } from '@chakra-ui/react';
import { FC } from 'react';
import NextLink from 'next/link';
import { ETHEREUM_ORG_RUN_A_NODE_URL } from '../../../constants';
interface Props {
children: React.ReactNode;
}
export const WhyRunANode: FC<Props> = ({ children }) => {
return (
<Stack border='2px solid' borderColor='brand.light.primary'>
<Grid
templateColumns={{ base: 'repeat(1, 1fr)', md: 'repeat(2, 1fr)' }}
borderBottom={{ base: 'none', md: '2px solid #11866f' }}
>
<GridItem order={{ base: 1, md: 2 }}>
<Stack
p={4}
borderBottom='2px solid'
borderColor='brand.light.primary'
sx={{ mt: '0 !important' }}
>
<Box as='h2' textStyle='h2'>
Why run a node?
</Box>
</Stack>
<Stack
p={4}
borderBottom={{ base: '2px solid', md: 'none' }}
borderColor='brand.light.primary'
sx={{ mt: '0 !important' }}
>
{children}
</Stack>
</GridItem>
<GridItem rowSpan={2}>
<Stack
justifyContent='center'
alignItems='center'
p={4}
borderBottom={{ base: '2px solid #11866f', md: 'none' }}
borderRight={{ base: 'none', md: '2px solid #11866f' }}
h='100%'
>
{/* TODO: use NextImage */}
<Image src='/images/pages/gopher-home-nodes.svg' alt='Gopher staring at nodes' />
</Stack>
</GridItem>
</Grid>
<Stack sx={{ mt: '0 !important' }}>
<NextLink href={ETHEREUM_ORG_RUN_A_NODE_URL} passHref>
<Link variant='button-link-secondary' isExternal>
<Text textStyle='home-section-link-label'>Read more about running a node</Text>
</Link>
</NextLink>
</Stack>
</Stack>
);
};

View File

@ -1,4 +1,6 @@
export * from './Gopher';
export * from './HomeHero';
export * from './HomeSection';
export * from './WhatIsEthereum';
export * from './WhyRunANode';
export * from './QuickLinks';

View File

@ -0,0 +1,11 @@
import { createIcon } from '@chakra-ui/icons';
export const DiscordIcon = createIcon({
displayName: 'DiscordIcon',
viewBox:"0 0 32 24",
path: (
<svg width="32" height="24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26.9846 2.02697C26.9758 2.01 26.9612 1.99671 26.9435 1.98947C24.8961 1.05243 22.7354 0.384243 20.5157 0.00163895C20.4955 -0.00210093 20.4747 0.000597065 20.4561 0.00934923C20.4376 0.0181014 20.4223 0.0324621 20.4124 0.0503891C20.1182 0.583045 19.8511 1.13017 19.6122 1.68968C17.2194 1.32737 14.7855 1.32737 12.3927 1.68968C12.1522 1.12875 11.8808 0.581488 11.5799 0.0503891C11.5696 0.0328517 11.5542 0.0188217 11.5357 0.0101264C11.5173 0.0014311 11.4967 -0.0015265 11.4765 0.00163895C9.25655 0.38344 7.09577 1.05167 5.0486 1.98952C5.03107 1.99693 5.01629 2.00958 5.00628 2.02573C0.912331 8.12422 -0.209155 14.0728 0.341008 19.9476C0.342556 19.962 0.346991 19.976 0.354049 19.9886C0.361107 20.0013 0.370644 20.0124 0.382093 20.0213C2.76596 21.7819 5.43234 23.1259 8.26746 23.9957C8.28743 24.0017 8.30875 24.0014 8.32855 23.9949C8.34836 23.9885 8.36571 23.9761 8.37825 23.9595C8.98718 23.133 9.52673 22.2579 9.99142 21.3429C9.9978 21.3304 10.0014 21.3166 10.0021 21.3026C10.0028 21.2885 10.0005 21.2745 9.99528 21.2614C9.99011 21.2483 9.98221 21.2364 9.97212 21.2266C9.96202 21.2167 9.94994 21.2091 9.93669 21.2043C9.08586 20.8796 8.26216 20.4881 7.47331 20.0336C7.45898 20.0252 7.44695 20.0134 7.43827 19.9993C7.42959 19.9851 7.42454 19.9691 7.42356 19.9525C7.42257 19.936 7.42569 19.9194 7.43264 19.9044C7.43958 19.8893 7.45014 19.8762 7.46338 19.8661C7.6289 19.7424 7.79453 19.6138 7.95258 19.4838C7.96662 19.4723 7.98362 19.4649 8.00164 19.4624C8.01967 19.46 8.03802 19.4627 8.05462 19.4701C13.2227 21.8228 18.8178 21.8228 23.9247 19.4701C23.9414 19.4622 23.9599 19.4592 23.9782 19.4614C23.9965 19.4636 24.0138 19.4709 24.028 19.4826C24.1861 19.6125 24.3517 19.7424 24.5185 19.8661C24.5318 19.8761 24.5424 19.8891 24.5495 19.9041C24.5565 19.9191 24.5598 19.9356 24.5589 19.9522C24.5581 19.9687 24.5531 19.9848 24.5446 19.999C24.536 20.0132 24.524 20.0251 24.5098 20.0336C23.7227 20.4919 22.8983 20.8832 22.0452 21.2031C22.032 21.2081 22.0199 21.2159 22.0099 21.2259C21.9999 21.2358 21.9921 21.2478 21.987 21.261C21.9819 21.2742 21.9797 21.2884 21.9805 21.3025C21.9813 21.3166 21.985 21.3304 21.9915 21.3429C22.464 22.2528 23.0027 23.1268 23.6034 23.958C23.6156 23.9751 23.6329 23.9879 23.6528 23.9946C23.6727 24.0014 23.6942 24.0017 23.7142 23.9955C26.5544 23.1287 29.2255 21.7846 31.6123 20.0213C31.624 20.0128 31.6336 20.002 31.6407 19.9895C31.6478 19.977 31.6521 19.9632 31.6534 19.9489C32.3121 13.1569 30.5507 7.25711 26.9846 2.02697ZM10.7632 16.3704C9.20726 16.3704 7.92519 14.9461 7.92519 13.1969C7.92519 11.4477 9.18239 10.0233 10.7632 10.0233C12.3564 10.0233 13.6261 11.4601 13.6012 13.1968C13.6012 14.9461 12.344 16.3704 10.7632 16.3704ZM21.2563 16.3704C19.7004 16.3704 18.4183 14.9461 18.4183 13.1969C18.4183 11.4477 19.6755 10.0233 21.2563 10.0233C22.8496 10.0233 24.1192 11.4601 24.0943 13.1968C24.0943 14.9461 22.8496 16.3704 21.2563 16.3704Z" fill="#11866F"/>
</svg>
)
});

View File

@ -0,0 +1,11 @@
import { createIcon } from '@chakra-ui/icons';
export const GitHubIcon = createIcon({
displayName: 'GitHubIcon',
viewBox:"0 0 26 24",
path: (
<svg width="26" height="24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.82878 19.3248C8.82878 19.424 8.71193 19.5034 8.56459 19.5034C8.39693 19.5183 8.28007 19.4389 8.28007 19.3248C8.28007 19.2255 8.39693 19.1461 8.54427 19.1461C8.69669 19.1312 8.82878 19.2106 8.82878 19.3248ZM7.2487 19.1014C7.21314 19.2007 7.31475 19.3148 7.46717 19.3446C7.59927 19.3942 7.75169 19.3446 7.78217 19.2454C7.81265 19.1461 7.71612 19.032 7.5637 18.9873C7.43161 18.9526 7.28427 19.0022 7.2487 19.1014ZM9.49435 19.0171C9.34701 19.0518 9.2454 19.1461 9.26064 19.2603C9.27588 19.3595 9.40798 19.424 9.5604 19.3893C9.70774 19.3545 9.80935 19.2603 9.79411 19.161C9.77886 19.0667 9.64169 19.0022 9.49435 19.0171ZM12.8374 0C5.79056 0 0.399994 5.22573 0.399994 12.109C0.399994 17.6126 3.94628 22.3222 9.01169 23.9798C9.66201 24.0939 9.89064 23.7019 9.89064 23.3793C9.89064 23.0716 9.8754 21.3744 9.8754 20.3322C9.8754 20.3322 6.31895 21.0766 5.57209 18.8533C5.57209 18.8533 4.9929 17.4092 4.15967 17.037C4.15967 17.037 2.9962 16.2578 4.24096 16.2727C4.24096 16.2727 5.50604 16.372 6.20209 17.5531C7.31475 19.4687 9.17935 18.9178 9.90588 18.5903C10.0227 17.7963 10.353 17.2454 10.7188 16.9179C7.8787 16.6102 5.01322 16.2082 5.01322 11.4341C5.01322 10.0693 5.39935 9.38447 6.21225 8.51103C6.08015 8.18846 5.6483 6.85846 6.34435 5.14136C7.4062 4.81878 9.84999 6.48129 9.84999 6.48129C10.8661 6.20338 11.9585 6.05946 13.0406 6.05946C14.1228 6.05946 15.2152 6.20338 16.2313 6.48129C16.2313 6.48129 18.6751 4.81382 19.7369 5.14136C20.433 6.86342 20.0011 8.18846 19.869 8.51103C20.6819 9.38943 21.1798 10.0743 21.1798 11.4341C21.1798 16.2231 18.1873 16.6052 15.3473 16.9179C15.8147 17.3099 16.211 18.0543 16.211 19.2205C16.211 20.893 16.1957 22.9624 16.1957 23.3694C16.1957 23.6919 16.4294 24.084 17.0747 23.9699C22.1553 22.3222 25.6 17.6126 25.6 12.109C25.6 5.22573 19.8843 0 12.8374 0ZM5.33838 17.1164C5.27233 17.166 5.28757 17.2801 5.37395 17.3744C5.45524 17.4538 5.57209 17.4886 5.63814 17.424C5.70419 17.3744 5.68895 17.2603 5.60257 17.166C5.52128 17.0866 5.40443 17.0518 5.33838 17.1164ZM4.78967 16.7144C4.75411 16.7789 4.80491 16.8583 4.90653 16.9079C4.98782 16.9576 5.08943 16.9427 5.12499 16.8732C5.16056 16.8087 5.10975 16.7293 5.00814 16.6796C4.90653 16.6499 4.82524 16.6648 4.78967 16.7144ZM6.4358 18.4811C6.35451 18.5456 6.38499 18.6945 6.50185 18.7888C6.6187 18.9029 6.76604 18.9178 6.83209 18.8384C6.89814 18.7739 6.86765 18.625 6.76604 18.5307C6.65427 18.4166 6.50185 18.4017 6.4358 18.4811ZM5.85661 17.7516C5.77532 17.8012 5.77532 17.9302 5.85661 18.0444C5.9379 18.1585 6.07507 18.2082 6.14112 18.1585C6.22241 18.094 6.22241 17.965 6.14112 17.8508C6.06999 17.7367 5.9379 17.6871 5.85661 17.7516Z" fill="#11866F"/>
</svg>
)
});

View File

@ -0,0 +1,16 @@
import { createIcon } from '@chakra-ui/icons';
export const HamburguerIcon = createIcon({
displayName: 'HamburguerIcon',
viewBox: '0 0 22 14',
path: (
<svg width={22} height={14} fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
fillRule='evenodd'
clipRule='evenodd'
d='M0 .5h22v.97H0V.5Zm0 6.017h22v.97H0v-.97Zm22 6.013H0v.97h22v-.97Z'
fill='#11866F'
/>
</svg>
)
});

View File

@ -0,0 +1,14 @@
import { createIcon } from '@chakra-ui/icons';
export const LensIcon = createIcon({
displayName: 'LensIcon',
viewBox: '0 0 17 18',
path: (
<svg width={17} height={18} fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M12.15 11.192h-.768l-.272-.263a6.29 6.29 0 0 0 1.526-4.111 6.317 6.317 0 1 0-6.318 6.318 6.29 6.29 0 0 0 4.111-1.526l.263.272v.768l4.86 4.85L17 16.052l-4.85-4.86Zm-5.832 0a4.368 4.368 0 0 1-4.374-4.374 4.368 4.368 0 0 1 4.374-4.374 4.368 4.368 0 0 1 4.374 4.374 4.368 4.368 0 0 1-4.374 4.374Z'
fill='#11866F'
/>
</svg>
)
});

View File

@ -0,0 +1,14 @@
import { createIcon } from '@chakra-ui/icons';
export const MoonIcon = createIcon({
displayName: 'MoonIcon',
viewBox: '0 0 22 22',
path: (
<svg width={22} height={22} fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M8.333.334C6.392.334 4.568.867 3 1.774c3.19 1.845 5.333 5.28 5.333 9.227 0 3.946-2.144 7.381-5.333 9.226a10.638 10.638 0 0 0 5.333 1.44C14.221 21.667 19 16.89 19 11.001 19 5.113 14.221.334 8.333.334Z'
fill='#11866F'
/>
</svg>
)
});

View File

@ -0,0 +1,11 @@
import { createIcon } from '@chakra-ui/icons';
export const TwitterIcon = createIcon({
displayName: 'TwitterIcon',
viewBox:"0 0 28 22",
path: (
<svg width="28" height="22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24.7247 5.48279C24.7418 5.72341 24.7418 5.96407 24.7418 6.20469C24.7418 13.5437 19.1739 22 8.99749 22C5.86232 22 2.94989 21.089 0.5 19.5078C0.945449 19.5594 1.37371 19.5766 1.83629 19.5766C4.42319 19.5766 6.80458 18.7 8.70624 17.2047C6.27349 17.1531 4.23477 15.5547 3.53234 13.3547C3.87501 13.4062 4.21763 13.4406 4.57744 13.4406C5.07425 13.4406 5.57112 13.3718 6.03365 13.2516C3.49812 12.7359 1.5964 10.5016 1.5964 7.80312V7.73439C2.33305 8.14689 3.18973 8.4047 4.09766 8.43904C2.60717 7.44214 1.63068 5.7406 1.63068 3.81559C1.63068 2.78436 1.90474 1.83904 2.38447 1.01404C5.10848 4.38278 9.20305 6.58275 13.7944 6.82341C13.7087 6.41091 13.6573 5.98127 13.6573 5.55157C13.6573 2.49216 16.1244 0 19.191 0C20.7843 0 22.2233 0.670311 23.2341 1.75312C24.4847 1.51251 25.684 1.04843 26.7462 0.412503C26.335 1.70159 25.4613 2.78441 24.3135 3.47186C25.4271 3.35161 26.5064 3.04216 27.5 2.61252C26.7463 3.71247 25.804 4.69212 24.7247 5.48279Z" fill="#11866F"/>
</svg>
)
});

View File

@ -0,0 +1,6 @@
export * from './DiscordIcon'
export * from './GitHubIcon'
export * from './HamburguerIcon';
export * from './LensIcon';
export * from './MoonIcon';
export * from './TwitterIcon'

View File

@ -0,0 +1,2 @@
export * from './DataTable';
export * from './Header';

View File

@ -0,0 +1,179 @@
import { Flex, Link, Stack, Text } from '@chakra-ui/react';
import { FC } from 'react';
import NextLink from 'next/link';
import {
DOCS_PAGE,
DOWNLOADS_PAGE,
GETH_DISCORD_URL,
GETH_REPO_URL,
GETH_TWITTER_URL
} from '../../constants'
import {
DiscordIcon,
GitHubIcon,
TwitterIcon
} from '../UI/icons';
export const Footer: FC = () => {
return (
<Flex
mt={4}
direction={{ base: 'column', lg: 'row'}}
>
<Flex
direction={{ base: 'column', md: 'row'}}
justifyContent={{md: 'space-between'}}
border='2px solid'
borderColor='brand.light.primary'
>
<Flex
borderBottom={{
base: '2px solid',
md: 'none'
}}
borderColor='brand.light.primary'
>
<NextLink href={DOWNLOADS_PAGE} passHref>
<Link
flex={1}
color='brand.light.primary'
_hover={{
textDecoration: 'none',
bg: 'brand.light.primary',
color: 'yellow.50 !important'
}}
height='full'
borderRight='2px solid'
borderColor='brand.light.primary'
>
<Text textStyle='home-section-link-label'>DOWNLOADS</Text>
</Link>
</NextLink>
<NextLink href={DOCS_PAGE} passHref>
<Link
flex={1}
color='brand.light.primary'
_hover={{
textDecoration: 'none',
bg: 'brand.light.primary',
color: 'yellow.50 !important'
}}
height='full'
borderRight={{
base: 'none',
md: '2px solid'
}}
borderColor='brand.light.primary'
>
<Text textStyle='home-section-link-label'>DOCUMENTATION</Text>
</Link>
</NextLink>
</Flex>
<Flex>
<NextLink href={GETH_TWITTER_URL} passHref>
<Link
isExternal
p={4}
display='flex'
flex={1}
data-group
borderLeft={{
base: 'none',
md: '2px solid',
lg: 'none'
}}
borderColor='brand.light.primary !important'
_hover={{
bg: 'brand.light.primary',
}}
justifyContent='center'
>
<TwitterIcon
w={6}
height={6}
margin='auto'
_groupHover={{
svg: {
path:{fill: 'yellow.50 !important'}
}
}}
/>
</Link>
</NextLink>
<NextLink href={GETH_DISCORD_URL} passHref>
<Link
isExternal
p={4}
data-group
display='flex'
flex={1}
_hover={{
bg: 'brand.light.primary',
}}
justifyContent='center'
borderWidth='2px'
borderStyle='none solid'
borderColor='brand.light.primary'
>
<DiscordIcon
w={6}
height={6}
_groupHover={{
svg: {
path:{fill: 'yellow.50 !important'}
}
}}
/>
</Link>
</NextLink>
<NextLink href={GETH_REPO_URL} passHref>
<Link
isExternal
p={4}
data-group
flex={1}
display='flex'
_hover={{
bg: 'brand.light.primary',
}}
justifyContent='center'
>
<GitHubIcon
w={6}
height={6}
_groupHover={{
svg: {
path:{fill: 'yellow.50 !important'}
}
}}
/>
</Link>
</NextLink>
</Flex>
</Flex>
<Stack
p={4}
textAlign='center'
justifyContent='center'
borderWidth='2px'
borderStyle={{
base: 'none solid solid solid',
lg: 'solid solid solid none'
}}
borderColor='brand.light.primary'
flex={1}
>
<Text textStyle='footer-text'>© 20132022. The go-ethereum Authors.</Text>
</Stack>
</Flex>
)
}

View File

@ -1,15 +1,23 @@
// Libraries
import { Container } from '@chakra-ui/react';
import { FC } from 'react';
// Components
import { Header } from '../UI';
import { Footer } from './Footer'
interface Props {
children?: React.ReactNode;
}
// TODO: if mobile, getMobileLayout, else getDesktopLayout
export const Layout: FC<Props> = ({ children }) => {
return (
<Container maxW={{ sm: 'container.sm' }} my={7}>
<Container maxW={{ base: 'container.sm', md: 'container.2xl' }} my={7}>
<Header />
{children}
<Footer />
</Container>
);
};

View File

@ -9,11 +9,15 @@ export const ETHEREUM_ORG_URL = 'https://ethereum.org';
export const ETHEREUM_ORG_RUN_A_NODE_URL = 'https://ethereum.org/en/run-a-node/';
export const ETHEREUM_FOUNDATION_URL = 'https://ethereum.foundation';
export const GETH_REPO_URL = 'https://github.com/ethereum/go-ethereum';
export const GETH_TWITTER_URL = 'https://twitter.com/go_ethereum';
export const GETH_DISCORD_URL = 'https://discord.com/invite/nthXNEv';
export const GO_URL = 'https://go.dev/';
// Downloads
export const DEFAULT_BUILD_AMOUNT_TO_SHOW = 10;
export const DOWNLOAD_HEADER_BUTTONS: {[index: string]: {name: string; image: string; imageAlt: string; buildURL: string;}} = {
export const DOWNLOAD_HEADER_BUTTONS: {
[index: string]: { name: string; image: string; imageAlt: string; buildURL: string };
} = {
linuxBuild: {
name: 'Linux',
image: '/images/pages/linux-penguin.svg',
@ -38,14 +42,8 @@ export const DOWNLOAD_HEADER_BUTTONS: {[index: string]: {name: string; image: st
imageAlt: 'Source branch logo',
buildURL: ''
}
}
export const DOWNLOAD_TABS = [
'Linux',
'macOS',
'Windows',
'iOS',
'Android'
]
};
export const DOWNLOAD_TABS = ['Linux', 'macOS', 'Windows', 'iOS', 'Android'];
export const DOWNLOAD_TAB_COLUMN_HEADERS = [
'Release',
'Commit',
@ -55,16 +53,16 @@ export const DOWNLOAD_TAB_COLUMN_HEADERS = [
'Published',
'Signature',
'Checksum (MD5)'
]
];
export const DOWNLOAD_OPENPGP_BUILD_HEADERS = [
'Build Server',
'Unique ID',
'OpenPGP Key',
'Fingerprint'
]
];
export const DOWNLOAD_OPENPGP_DEVELOPER_HEADERS = [
'Developer',
'Unique ID',
'OpenPGP Key',
'Fingerprint'
]
];

View File

@ -7,7 +7,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -17,7 +17,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -27,7 +27,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -37,7 +37,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -47,7 +47,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -57,7 +57,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -67,7 +67,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -77,7 +77,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -87,7 +87,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -97,7 +97,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -107,7 +107,7 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
},
{
release: 'Geth 1.10.23',
@ -117,6 +117,6 @@ export const testDownloadData = [
size: '11.71 MB',
published: 'Last Wednesday at 11:11 AM',
signature: 'Signature',
"checksum (md5)": 'c93b0339413a8f2b95aa4b23b32d64af'
},
]
'checksum (md5)': 'c93b0339413a8f2b95aa4b23b32d64af'
}
];

View File

@ -1,32 +1,32 @@
export const pgpBuildTestData = [
{
"build server": "Android Builder",
"unique id": "Go Ethereum Android Builder <geth-ci@ethereum.org>",
"openpgp key": "F9585DE6",
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6"
'build server': 'Android Builder',
'unique id': 'Go Ethereum Android Builder <geth-ci@ethereum.org>',
'openpgp key': 'F9585DE6',
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6'
},
{
"build server": "iOS Builder",
"unique id": "Go Ethereum iOS Builder <geth-ci@ethereum.org>",
"openpgp key": "F9585DE6",
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6"
'build server': 'iOS Builder',
'unique id': 'Go Ethereum iOS Builder <geth-ci@ethereum.org>',
'openpgp key': 'F9585DE6',
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6'
},
{
"build server": "Linux Builder",
"unique id": "Go Ethereum Linux Builder <geth-ci@ethereum.org>",
"openpgp key": "F9585DE6",
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6"
'build server': 'Linux Builder',
'unique id': 'Go Ethereum Linux Builder <geth-ci@ethereum.org>',
'openpgp key': 'F9585DE6',
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6'
},
{
"build server": "macOS Builder",
"unique id": "Go Ethereum macOS Builder <geth-ci@ethereum.org>",
"openpgp key": "F9585DE6",
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6"
'build server': 'macOS Builder',
'unique id': 'Go Ethereum macOS Builder <geth-ci@ethereum.org>',
'openpgp key': 'F9585DE6',
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6'
},
{
"build server": "Windows Builder",
"unique id": "Go Ethereum Windows Builder <geth-ci@ethereum.org>",
"openpgp key": "F9585DE6",
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6"
},
]
'build server': 'Windows Builder',
'unique id': 'Go Ethereum Windows Builder <geth-ci@ethereum.org>',
'openpgp key': 'F9585DE6',
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6'
}
];

View File

@ -1,20 +1,20 @@
export const pgpDeveloperTestData = [
{
"developer": "Felix Lange",
"unique id": "Felix Lange <fjl@ethereum.org>",
"openpgp key": "F9585DE6",
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6"
developer: 'Felix Lange',
'unique id': 'Felix Lange <fjl@ethereum.org>',
'openpgp key': 'F9585DE6',
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6'
},
{
"developer": "Martin Holst Swende",
"unique id": "Martin Holst Swende <martin.swende@ethereum.org>",
"openpgp key": "F9585DE6",
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6"
developer: 'Martin Holst Swende',
'unique id': 'Martin Holst Swende <martin.swende@ethereum.org>',
'openpgp key': 'F9585DE6',
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6'
},
{
"developer": "Péter Szilágyi",
"unique id": "Péter Szilágyi <peter@ethereum.org>",
"openpgp key": "F9585DE6",
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6"
},
]
developer: 'Péter Szilágyi',
'unique id': 'Péter Szilágyi <peter@ethereum.org>',
'openpgp key': 'F9585DE6',
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6'
}
];

View File

@ -1,6 +1,6 @@
---
title: Geth fundamentals
description: Documentation for foundational Geth topics
description: Documentation for foundational Geth topics
---
## Geth fundamentals
@ -12,4 +12,3 @@ This is where you will find information about how to manage a Geth node and unde
For example, the pages here will help you to understand the underlying architecture of your Geth node, how to start it in different configurations using command line options, how to sync the blockchain and how to manage accounts. There is a page on security practices that will help you to keep your Geth node safe from adversaries.
Note also that there is a page explaining common log messages that are often queried on the Geth discord and Github - this will help users to interpret the messages displayed to the console and know what actions to take.

View File

@ -1,229 +1,214 @@
import {
Code,
Link,
ListItem,
Stack,
Text,
UnorderedList,
} from '@chakra-ui/react';
import { Code, Link, ListItem, Stack, Text, UnorderedList } from '@chakra-ui/react';
import type { NextPage } from 'next';
import { useState } from 'react'
import { useState } from 'react';
import {
DownloadsHero,
DownloadsSection,
DownloadsTable,
} from '../components/UI/downloads';
import { DataTable } from '../components/UI/DataTable';
import { DownloadsHero, DownloadsSection, DownloadsTable } from '../components/UI/downloads';
import { DataTable } from '../components/UI';
import {
DEFAULT_BUILD_AMOUNT_TO_SHOW,
DOWNLOAD_OPENPGP_BUILD_HEADERS,
DOWNLOAD_OPENPGP_DEVELOPER_HEADERS,
GETH_REPO_URL
} from '../constants'
} from '../constants';
import { testDownloadData } from '../data/test/download-testdata'
import { testDownloadData } from '../data/test/download-testdata';
import { pgpBuildTestData } from '../data/test/pgpbuild-testdata';
import { pgpDeveloperTestData } from '../data/test/pgpdeveloper-testdata';
const DownloadsPage: NextPage = () => {
const [amountStableReleases, updateAmountStables] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW)
const [amountDevelopBuilds, updateAmountDevelopBuilds] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW)
const [amountStableReleases, updateAmountStables] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW);
const [amountDevelopBuilds, updateAmountDevelopBuilds] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW);
const showMoreStableReleases = () => {
updateAmountStables(amountStableReleases+10)
}
updateAmountStables(amountStableReleases + 10);
};
const showMoreDevelopBuilds = () => {
updateAmountDevelopBuilds(amountDevelopBuilds+10)
}
updateAmountDevelopBuilds(amountDevelopBuilds + 10);
};
return (
<>
{/* TODO: add PageMetadata */}
<main>
<Stack spacing={4}>
{/* TODO: replace hardcoded strings with build information */}
<DownloadsHero
currentBuildName={'Sentry Omega'}
currentBuildVersion={'v1.10.23'}
linuxBuildURL={'https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.25-69568c55.tar.gz'}
macOSBuildURL={'https://gethstore.blob.core.windows.net/builds/geth-darwin-amd64-1.10.25-69568c55.tar.gz'}
releaseNotesURL={''}
sourceCodeURL={'https://github.com/ethereum/go-ethereum/archive/v1.10.25.tar.gz'}
windowsBuildURL={'https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-1.10.25-69568c55.exe'}
/>
{/* TODO: add PageMetadata */}
<DownloadsSection
imgSrc='/images/pages/gopher-home-side-desktop.svg'
imgAltText='Gopher facing right'
sectionTitle='Specific Versions'
id='specificversions'
>
<Stack p={4}>
<Text textStyle='quick-link-text'>
If you&apos;re looking for a specific release, operating system or architecture, below you will find:
</Text>
<main>
<Stack spacing={4}>
{/* TODO: replace hardcoded strings with build information */}
<DownloadsHero
currentBuildName={'Sentry Omega'}
currentBuildVersion={'v1.10.23'}
linuxBuildURL={
'https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.25-69568c55.tar.gz'
}
macOSBuildURL={
'https://gethstore.blob.core.windows.net/builds/geth-darwin-amd64-1.10.25-69568c55.tar.gz'
}
releaseNotesURL={''}
sourceCodeURL={'https://github.com/ethereum/go-ethereum/archive/v1.10.25.tar.gz'}
windowsBuildURL={
'https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-1.10.25-69568c55.exe'
}
/>
<UnorderedList px={4}>
<ListItem>
<Text textStyle='quick-link-text'>
All stable and develop builds of Geth and tools
</Text>
</ListItem>
<ListItem>
<Text textStyle='quick-link-text'>
Archives for non-primary processor architectures
</Text>
</ListItem>
<ListItem>
<Text textStyle='quick-link-text'>
Android library archives and iOS XCode frameworks
</Text>
</ListItem>
</UnorderedList>
<Text textStyle='quick-link-text'>
Please select your desired platform from the lists below and download your bundle of choice. Please be aware that the MD5 checksums are provided by our binary hosting platform (Azure Blobstore) to help check for download errors. For security guarantees please verify any downloads via the attached PGP signature files (see{' '}
<Link
href={'#pgpsignatures'}
variant='light'
>
OpenPGP
</Link>{' '}
Signatures for details).
</Text>
</Stack>
</DownloadsSection>
<DownloadsSection sectionTitle='Stable releases' id='stablereleases'>
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
These are the current and previous stable releases of go-ethereum, updated automatically when a new version is tagged in our{' '}
<Link
href={GETH_REPO_URL}
isExternal
variant='light'
>
GitHub repository.
</Link>
</Text>
</Stack>
{/* TODO: swap test data for real data */}
<DownloadsTable data={testDownloadData.slice(0, amountStableReleases)}/>
<Stack sx={{ mt: '0 !important' }}>
<Link as='button' variant='button-link-secondary' onClick={showMoreStableReleases}>
<Text
fontFamily='"JetBrains Mono", monospace'
fontWeight={700}
textTransform='uppercase'
textAlign='center'
p={4}
>
Show older releases
<DownloadsSection
imgSrc='/images/pages/gopher-home-side-desktop.svg'
imgAltText='Gopher facing right'
sectionTitle='Specific Versions'
id='specificversions'
>
<Stack p={4}>
<Text textStyle='quick-link-text'>
If you&apos;re looking for a specific release, operating system or architecture,
below you will find:
</Text>
</Link>
</Stack>
</DownloadsSection>
<DownloadsSection sectionTitle='Develop builds' id='developbuilds'>
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
These are the develop snapshots of go-ethereum, updated automatically when a new commit is pushed into our{' '}
<Link
href={GETH_REPO_URL}
isExternal
variant='light'
>
GitHub repository.
</Link>
</Text>
</Stack>
<UnorderedList px={4}>
<ListItem>
<Text textStyle='quick-link-text'>
All stable and develop builds of Geth and tools
</Text>
</ListItem>
<ListItem>
<Text textStyle='quick-link-text'>
Archives for non-primary processor architectures
</Text>
</ListItem>
<ListItem>
<Text textStyle='quick-link-text'>
Android library archives and iOS XCode frameworks
</Text>
</ListItem>
</UnorderedList>
{/* TODO: swap for real data */}
<DownloadsTable data={testDownloadData.slice(0, amountDevelopBuilds)} />
<Stack sx={{ mt: '0 !important' }}>
<Link as='button' variant='button-link-secondary' onClick={showMoreDevelopBuilds}>
<Text
fontFamily='"JetBrains Mono", monospace'
fontWeight={700}
textTransform='uppercase'
textAlign='center'
p={4}
>
Show older releases
<Text textStyle='quick-link-text'>
Please select your desired platform from the lists below and download your bundle of
choice. Please be aware that the MD5 checksums are provided by our binary hosting
platform (Azure Blobstore) to help check for download errors. For security
guarantees please verify any downloads via the attached PGP signature files (see{' '}
<Link href={'#pgpsignatures'} variant='light'>
OpenPGP
</Link>{' '}
Signatures for details).
</Text>
</Link>
</Stack>
</DownloadsSection>
</Stack>
</DownloadsSection>
<DownloadsSection sectionTitle='OpenPGP Signatures' id='pgpsignatures'>
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
All the binaries available from this page are signed via our build server PGP keys:
</Text>
</Stack>
<DownloadsSection sectionTitle='Stable releases' id='stablereleases'>
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
These are the current and previous stable releases of go-ethereum, updated
automatically when a new version is tagged in our{' '}
<Link href={GETH_REPO_URL} isExternal variant='light'>
GitHub repository.
</Link>
</Text>
</Stack>
{/* TODO: swap for real data */}
<Stack borderBottom='2px solid' borderColor='brand.light.primary'>
<DataTable
columnHeaders={DOWNLOAD_OPENPGP_BUILD_HEADERS}
data={pgpBuildTestData}
/>
</Stack>
{/* TODO: swap test data for real data */}
<DownloadsTable data={testDownloadData.slice(0, amountStableReleases)} />
{/* TODO: swap for real data */}
<Stack>
<DataTable
columnHeaders={DOWNLOAD_OPENPGP_DEVELOPER_HEADERS}
data={pgpDeveloperTestData}
/>
</Stack>
</DownloadsSection>
<Stack sx={{ mt: '0 !important' }}>
<Link as='button' variant='button-link-secondary' onClick={showMoreStableReleases}>
<Text
fontFamily='"JetBrains Mono", monospace'
fontWeight={700}
textTransform='uppercase'
textAlign='center'
p={4}
>
Show older releases
</Text>
</Link>
</Stack>
</DownloadsSection>
<DownloadsSection sectionTitle='Importing keys and verifying builds' id='importingkeys'>
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
You can import the build server public keys by grabbing the individual keys directly from the keyserver network:
</Text>
<DownloadsSection sectionTitle='Develop builds' id='developbuilds'>
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
These are the develop snapshots of go-ethereum, updated automatically when a new
commit is pushed into our{' '}
<Link href={GETH_REPO_URL} isExternal variant='light'>
GitHub repository.
</Link>
</Text>
</Stack>
{/* TODO: These keys depends on the binary */}
<Code p={4}>
gpg --recv-keys F9585DE6 C2FF8BBF 9BA28146 7B9E2481 D2A67EAC
</Code>
</Stack>
{/* TODO: swap for real data */}
<DownloadsTable data={testDownloadData.slice(0, amountDevelopBuilds)} />
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
Similarly you can import all the developer public keys by grabbing them directly from the keyserver network:
</Text>
<Stack sx={{ mt: '0 !important' }}>
<Link as='button' variant='button-link-secondary' onClick={showMoreDevelopBuilds}>
<Text
fontFamily='"JetBrains Mono", monospace'
fontWeight={700}
textTransform='uppercase'
textAlign='center'
p={4}
>
Show older releases
</Text>
</Link>
</Stack>
</DownloadsSection>
{/* TODO: These are developer keys, do we need to change? */}
<Code p={4}>
gpg --recv-keys E058A81C 05A5DDF0 1CCB7DD2
</Code>
</Stack>
<DownloadsSection sectionTitle='OpenPGP Signatures' id='pgpsignatures'>
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
All the binaries available from this page are signed via our build server PGP keys:
</Text>
</Stack>
<Stack p={4}>
<Text textStyle='quick-link-text'>
From the download listings above you should see a link both to the downloadable archives as well as detached signature files. To verify the authenticity of any downloaded data, grab both files and then run:
</Text>
{/* TODO: swap for real data */}
<Stack borderBottom='2px solid' borderColor='brand.light.primary'>
<DataTable columnHeaders={DOWNLOAD_OPENPGP_BUILD_HEADERS} data={pgpBuildTestData} />
</Stack>
{/* TODO: These keys depends on the binary */}
<Code p={4}>
gpg --verify geth-linux-amd64-1.5.0-d0c820ac.tar.gz.asc
</Code>
</Stack>
</DownloadsSection>
</Stack>
</main>
{/* TODO: swap for real data */}
<Stack>
<DataTable
columnHeaders={DOWNLOAD_OPENPGP_DEVELOPER_HEADERS}
data={pgpDeveloperTestData}
/>
</Stack>
</DownloadsSection>
<DownloadsSection sectionTitle='Importing keys and verifying builds' id='importingkeys'>
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
You can import the build server public keys by grabbing the individual keys directly
from the keyserver network:
</Text>
{/* TODO: These keys depends on the binary */}
<Code p={4}>gpg --recv-keys F9585DE6 C2FF8BBF 9BA28146 7B9E2481 D2A67EAC</Code>
</Stack>
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'>
<Text textStyle='quick-link-text'>
Similarly you can import all the developer public keys by grabbing them directly
from the keyserver network:
</Text>
{/* TODO: These are developer keys, do we need to change? */}
<Code p={4}>gpg --recv-keys E058A81C 05A5DDF0 1CCB7DD2</Code>
</Stack>
<Stack p={4}>
<Text textStyle='quick-link-text'>
From the download listings above you should see a link both to the downloadable
archives as well as detached signature files. To verify the authenticity of any
downloaded data, grab both files and then run:
</Text>
{/* TODO: These keys depends on the binary */}
<Code p={4}>gpg --verify geth-linux-amd64-1.5.0-d0c820ac.tar.gz.asc</Code>
</Stack>
</DownloadsSection>
</Stack>
</main>
</>
)
}
);
};
export default DownloadsPage
export default DownloadsPage;

View File

@ -1,16 +1,22 @@
import { Link, Stack, Text } from '@chakra-ui/react';
import { Box, Grid, GridItem, Link, Stack, Text } from '@chakra-ui/react';
import type { NextPage } from 'next';
import { Gopher, HomeHero, HomeSection, QuickLinks } from '../components/UI/homepage';
import {
Gopher,
HomeHero,
HomeSection,
QuickLinks,
WhatIsEthereum,
WhyRunANode
} from '../components/UI/homepage';
import {
CONTRIBUTING_PAGE,
DOCS_PAGE,
ETHEREUM_FOUNDATION_URL,
ETHEREUM_ORG_RUN_A_NODE_URL,
ETHEREUM_ORG_URL,
GETH_REPO_URL,
GO_URL,
GO_URL
} from '../constants';
const HomePage: NextPage = ({}) => {
@ -22,118 +28,128 @@ const HomePage: NextPage = ({}) => {
<Stack spacing={4}>
<HomeHero />
{/* SECTION: What is Geth */}
<HomeSection
imgSrc='/images/pages/gopher-home-front.svg'
imgAltText='Gopher greeting'
sectionTitle='What is Geth'
linkLabel='Get started with Geth'
buttonHref={`${DOCS_PAGE}/getting-started`}
>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Geth (go-ethereum) is a{' '}
<Link href={GO_URL} isExternal variant='light'>
Go
</Link>{' '}
implementation of{' '}
<Link href={ETHEREUM_ORG_URL} isExternal variant='light'>
Ethereum
</Link>{' '}
- a gateway into the decentralized web.
</Text>
<Grid templateColumns={{ base: 'repeat(1, 1fr)', lg: 'repeat(2, 1fr)' }} gap={4}>
<GridItem rowSpan={2}>
{/* SECTION: What is Geth */}
<HomeSection
imgSrc='/images/pages/gopher-home-front.svg'
imgAltText='Gopher greeting'
sectionTitle='What is Geth'
linkLabel='Get started with Geth'
buttonHref={`${DOCS_PAGE}/getting-started`}
>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Geth (go-ethereum) is a{' '}
<Link href={GO_URL} isExternal variant='light'>
Go
</Link>{' '}
implementation of{' '}
<Link href={ETHEREUM_ORG_URL} isExternal variant='light'>
Ethereum
</Link>{' '}
- a gateway into the decentralized web.
</Text>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Geth has been a core part of Etheruem since the very beginning. Geth was one of the
original Ethereum implementations making it the most battle-hardened and tested
client.
</Text>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Geth has been a core part of Etheruem since the very beginning. Geth was one of
the original Ethereum implementations making it the most battle-hardened and
tested client.
</Text>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Geth is an Ethereum{' '}
<Text as='span' fontStyle='italic'>
execution client
</Text>{' '}
meaning it handles transactions, deployment and execution of smart contracts and
contains an embedded computer known as the{' '}
<Text as='span' fontStyle='italic'>
Ethereum Virtual Machine
</Text>
.
</Text>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Geth is an Ethereum{' '}
<Text as='span' fontStyle='italic'>
execution client
</Text>{' '}
meaning it handles transactions, deployment and execution of smart contracts and
contains an embedded computer known as the{' '}
<Text as='span' fontStyle='italic'>
Ethereum Virtual Machine
</Text>
.
</Text>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Running Geth alongside a consensus client turns a computer into an Ethereum node.
</Text>
</HomeSection>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Running Geth alongside a consensus client turns a computer into an Ethereum node.
</Text>
</HomeSection>
</GridItem>
{/* SECTION: What is Ethereum */}
<HomeSection
imgSrc='/images/pages/glyph-home-light.svg'
imgAltText='Ethereum glyph'
sectionTitle='What is Ethereum'
linkLabel='Learn more on Ethereum.org'
buttonHref={ETHEREUM_ORG_URL}
>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Ethereum is a technology for building apps and organizations, holding assets,
transacting and communicating without being controlled by a central authority. It is
the base of a new, decentralized internet.
</Text>
</HomeSection>
<GridItem>
{/* SECTION: What is Ethereum (has different styles than the other sections so it uses a different component) */}
<WhatIsEthereum>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Ethereum is a technology for building apps and organizations, holding assets,
transacting and communicating without being controlled by a central authority. It
is the base of a new, decentralized internet.
</Text>
</WhatIsEthereum>
</GridItem>
{/* SECTION: Why run a Node */}
<HomeSection
imgSrc='/images/pages/gopher-home-nodes.svg'
imgAltText='Gopher staring at nodes'
sectionTitle='Why run a node?'
linkLabel='Read more about running a node'
buttonHref={ETHEREUM_ORG_RUN_A_NODE_URL}
>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Running your own node enables you to use Ethereum in a truly private, self-sufficient
and trustless manner. You don&apos;t need to trust information you receive because you
can verify the data yourself using your Geth instance.
</Text>
<GridItem>
{/* SECTION: Why run a node (has different styles than the other sections so it uses a different component) */}
<WhyRunANode>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
Running your own node enables you to use Ethereum in a truly private,
self-sufficient and trustless manner. You don&apos;t need to trust information you
receive because you can verify the data yourself using your Geth instance.
</Text>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px' fontWeight={700}>
&ldquo;Don&apos;t trust, verify&rdquo;
</Text>
</HomeSection>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px' fontWeight={700}>
&ldquo;Don&apos;t trust, verify&rdquo;
</Text>
</WhyRunANode>
</GridItem>
</Grid>
{/* SECTION:Contribute to Geth */}
<HomeSection
sectionTitle='Contribute to Geth'
linkLabel='Read our contribution guidelines'
buttonHref={CONTRIBUTING_PAGE}
>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
We welcome contributions from anyone on the internet, and are grateful for even the
smallest of fixes! If you&apos;d like to contribute to the Geth source code, please
fork the{' '}
<Link href={GETH_REPO_URL} isExternal variant='light'>
Github repository
</Link>
, fix, commit and send a pull request for the maintainers to review and merge into the
main code base.
</Text>
</HomeSection>
<Grid templateColumns={{ base: 'repeat(1, 1fr)', md: 'repeat(2, 1fr)' }} gap={4}>
<GridItem>
{/* SECTION: Contribute to Geth */}
<HomeSection
sectionTitle='Contribute to Geth'
linkLabel='Read our contribution guidelines'
buttonHref={CONTRIBUTING_PAGE}
>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
We welcome contributions from anyone on the internet, and are grateful for even
the smallest of fixes! If you&apos;d like to contribute to the Geth source code,
please fork the{' '}
<Link href={GETH_REPO_URL} isExternal variant='light'>
Github repository
</Link>
, fix, commit and send a pull request for the maintainers to review and merge into
the main code base.
</Text>
</HomeSection>
</GridItem>
{/* SECTION: About the Team */}
<HomeSection
sectionTitle='About the Team'
linkLabel='Read more about the Ethereum Foundation'
buttonHref={ETHEREUM_FOUNDATION_URL}
>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
The Geth team comprises 10 developers distributed across the world. The Geth team is
funded directly by The Ethereum Foundation.
</Text>
</HomeSection>
<GridItem>
{/* SECTION: About the Team */}
<HomeSection
sectionTitle='About the Team'
linkLabel='Read more about the Ethereum Foundation'
buttonHref={ETHEREUM_FOUNDATION_URL}
>
<Text fontFamily='"Inter", sans-serif' lineHeight='26px'>
The Geth team comprises 10 developers distributed across the world. The Geth team
is funded directly by The Ethereum Foundation.
</Text>
</HomeSection>
</GridItem>
</Grid>
{/* TODO: replace with animated/video version */}
<Gopher />
<Grid templateColumns={{ base: 'repeat(1, 1fr)', md: '300px 1fr' }} gap={4}>
<GridItem w='auto'>
<Box h='100%'>
{/* TODO: replace with animated/video version */}
<Gopher />
</Box>
</GridItem>
<QuickLinks />
<GridItem>
<QuickLinks />
</GridItem>
</Grid>
</Stack>
</main>
</>

View File

@ -1,3 +1,3 @@
export const shadows = {
linkBoxShadow: '0 0 0 1px #11866f !important'
}
};

View File

@ -1,6 +1,7 @@
export const sizes = {
container: {
sm: '480px',
md: '768px',
lg: '1096px',
xl: '1200px',
'2xl': '1536px'

View File

@ -15,6 +15,11 @@ export const textStyles = {
letterSpacing: '4%',
color: 'brand.light.body'
},
'header-font': {
fontFamily: '"JetBrains Mono", monospace',
fontWeight: 700,
fontSize: { base: '0.86rem', sm: '1rem' }
},
'homepage-description': {
fontFamily: '"JetBrains Mono", monospace',
fontWeight: 700,
@ -53,18 +58,24 @@ export const textStyles = {
fontSize: '13px',
fontFamily: '"Inter", sans-serif'
},
'footer-text': {
fontFamily: '"Inter", sans-serif',
lineHeight: '22px',
fontWeight: 400,
fontSize: '12px'
},
'downloads-button-label': {
fontFamily:'"JetBrains Mono", monospace',
color:'yellow.50',
fontSize:'xs',
textTransform:'uppercase',
fontFamily: '"JetBrains Mono", monospace',
color: 'yellow.50',
fontSize: 'xs',
textTransform: 'uppercase'
},
'download-tab-label': {
fontFamily: '"JetBrains Mono", monospace',
fontWeight: 700,
textTransform: 'uppercase',
textAlign: 'center',
fontSize: 'sm',
fontSize: 'sm'
},
// TODO: refactor w/ semantic tokens for light/dark mode
'link-light': {},

View File

@ -243,6 +243,13 @@
compute-scroll-into-view "1.0.14"
copy-to-clipboard "3.3.1"
"@chakra-ui/icon@3.0.11":
version "3.0.11"
resolved "https://registry.yarnpkg.com/@chakra-ui/icon/-/icon-3.0.11.tgz#a51dda24bed2f2ed77b4136ada8f22d3249c9870"
integrity sha512-RG4jf/XmBdaxOYI5J5QstEtTCPoVlmrQ/XiWhvN0LTgAnmZIqVwFl3Uw+satArdStHAs0GmJZg/E/soFTWuFmw==
dependencies:
"@chakra-ui/shared-utils" "2.0.2"
"@chakra-ui/icon@3.0.9":
version "3.0.9"
resolved "https://registry.yarnpkg.com/@chakra-ui/icon/-/icon-3.0.9.tgz#ba127d9eefd727f62e9bce07a23eca39ae506744"
@ -250,6 +257,13 @@
dependencies:
"@chakra-ui/shared-utils" "2.0.1"
"@chakra-ui/icons@^2.0.11":
version "2.0.11"
resolved "https://registry.yarnpkg.com/@chakra-ui/icons/-/icons-2.0.11.tgz#3faf53c499c7c61c65b6e5ff4b0933f48b9ba416"
integrity sha512-WjxrFMt9hHpuZlnBh4fhtGOkIVlwYwHNmwq4sJGxYWlg8UnEhVJMoOojheJDy/d3Gp9+ApetlK3vt8fV/rZamg==
dependencies:
"@chakra-ui/icon" "3.0.11"
"@chakra-ui/image@2.0.10":
version "2.0.10"
resolved "https://registry.yarnpkg.com/@chakra-ui/image/-/image-2.0.10.tgz#712c0e1c579d959225bd8316d8d8f66cbeb95bb8"
@ -629,6 +643,11 @@
resolved "https://registry.yarnpkg.com/@chakra-ui/shared-utils/-/shared-utils-2.0.1.tgz#41e314e42c96039e8ffb265e73145cf755813ab4"
integrity sha512-NXDBl/u4wrSNp0ON5R3r3evkRurrAz2yuO7neooaG+O5HEenVouGqm4CsXd6lUAPmjwiGzA0LQFNCt0Hj92dXg==
"@chakra-ui/shared-utils@2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@chakra-ui/shared-utils/-/shared-utils-2.0.2.tgz#1df08133194c12ac4df9302604ec37784c2bb026"
integrity sha512-wC58Fh6wCnFFQyiebVZ0NI7PFW9+Vch0QE6qN7iR+bLseOzQY9miYuzPJ1kMYiFd6QTOmPJkI39M3wHqrPYiOg==
"@chakra-ui/skeleton@2.0.15":
version "2.0.15"
resolved "https://registry.yarnpkg.com/@chakra-ui/skeleton/-/skeleton-2.0.15.tgz#fd41383bf84319e47c6ea1f4f3138f5f5e0dabca"